HDUOJ 18岁生日 题目1201



本题是一道细心题考虑各种情况

#include<stdio.h>int pan(int n){if(n%400==0||(n%4==0&&n%100!=0))return 1;else return 0;}int main(){int t;scanf("%d",&t);while(t–){ int day,mon,year,sum=0,i; scanf("%d-%d-%d",&year,&mon,&day); if(pan(year)==1&&day==29&&pan(year+18)==0) { printf("-1\n"); continue; } sum=365*18;//先按平年算 for(int i=year+1;i<year+18;i++)//计算有多少润年{ if(pan(i)==1) sum+=1; } if(pan(year)==1&&(mon==1||(mon==2&&day<29))) sum+=1;//生日那一年是润年且在一月或二月29之前if(pan(year+18)==1&&(mon>=3)) sum+=1;//18岁那一年的生日在3月后且是润年printf("%d\n",sum); }return 0;}

版权声明:本文为博主原创文章,,未经博主允许不得转载。

不要气馁于那前方的阴影,那只是因为我背后光芒万丈

HDUOJ 18岁生日 题目1201

相关文章:

你感兴趣的文章:

标签云: