hdu1201(水)

题目链接:18岁生日

给出出生日期,问到18岁生日有多少天


如图,我们要求的实际是黑线的区域,但为了简化计算我实际是按红线区域求得

因此在端点出也要判断闰年的情况

如果出生当年是闰年,且在2月之前出生,我们就经过了一个闰年,但在计算时没有加进去,因此要加上一天

同理在18岁生日当年也要判断

#include  
using namespace std;  
#include  
int main()  
{   int fun(int i);  
   int t,y,m,d,sign,sum,s,h,i;  
    cin>>t;  
    while(t--)  
    {sum=0;  
        scanf("%d-%d-%d",&y,&m,&d);  
        if(m==2&&d==29)  
            printf("-1\n");  
            else  
            {  
                 for(i=y+1;i


你可能感兴趣的:(水题)