1201 18岁生日

来源:互联网 发布:免费的cad软件 编辑:程序博客网 时间:2024/04/30 02:26

这题不难,多注意细节

这是某好心人给的测试数据:

132004-1-222004-2-282004-2-292004-4-202003-2-202003-2-282003-3-202002-2-202002-2-282002-3-202001-2-202001-2-282001-3-20结果:65756575-16574657565756575657465746575657465746574
#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<cmath>#include<string>#include<iomanip>using namespace std;const int MAX = 10010;bool isLY(int y){    if(y%4==0 && y%100!=0 || y%400==0) return true;    return false;}int main(){   char ch1,ch2;    int T,y,m,d,i,day;    cin>>T;    while(T--)    {   day = 18*365;        cin>>y>>ch1>>m>>ch2>>d;        if(m==2 && d==29 && !isLY(y+18)) {cout<<"-1"<<endl; continue;}        for(i=y+1;i<y+18;i++)        if(isLY(i)) day++;        if(m>2)            {if(isLY(y+18)) day++;}        else {if(isLY(y)) day++;}        cout<<day<<endl;    }    return 0;}

0 0