码迷,mamicode.com
首页 > 其他好文 > 详细

HDUOJ 18岁生日 题目1201

时间:2015-07-27 19:08:09      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:



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

#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

标签:

原文地址:http://blog.csdn.net/yueloveme/article/details/47087041

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!