**
航电oj:18岁生日
**
#题目描述
#理解题目 看出生和18岁这两年 其他年 润年366 平年 365
#出生年闰年且生日在2月前 这年有366 18岁这年(出生年是闰年前一年)生日在3月或之后 有366
#知识点
闰年
#代码
#include <cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int fn(int math)//闰年为1平年为-1
{
if(math%400==0)
return 1;
if(math%4==0&&math%400!=0)
return 1;
return 0;
}
int main()
{
int year,month,day,i,j,k,sum;
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d-%d-%d",&year,&month,&day);
if(fn(year+18)==0&&month==2&&day==29)
{
printf("-1\n");
continue;
}
sum=0;
for(i=1;i<=18;i++)
{
if(month<=2)
{
if(fn(year)==1)
sum+=366;
else sum+=365;
}
else if(month>2)
{
if(fn(year+1)==1)
sum+=366;
else sum+=365;
}
year+=1;
}
printf("%d\n",sum);
}
return 0;
}
#总结
题目不是很明确 我都懵了 看来别的解释才懂 真就中文题谜语人呗 (>_<)!!