问题 A: HH的一万天

来源:互联网 发布:跨区域淘宝客服招聘 编辑:程序博客网 时间:2024/05/22 03:24

问题 A: HH的一万天

时间限制: 1 Sec  内存限制: 128 MB
提交: 115  解决: 42
[提交][状态][讨论版]

题目描述

HH的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。

输入

输入有多行

第一行先输入一个数字N

接下来第2行到第N+1行,每行输入一个时间,格式为YY MM DD 其中1949<=YY<=2006,日期绝对合法。

输出

输出有多行。即HH生日第一万天以后的日期,格式为 “Y-M-D”。

每组测试数据占一行输出!

样例输入

11979 4 16

样例输出

2006-9-1

提示

测试代码的正误,是根据后台多组测试数据来判断的,并非题目给出的测试数据没问题就能AC

#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},month2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};void  count(int y,intm,int d){            inti;            for(i=0;i<=10000-1;i++){                if((y%4==0&&y%100!=0)||y%400==0){                    d=d+1;                if(d>month2[m]){                    d=1;                    m=m+1;                }                if(m>12){                    m=1;                    y=y+1;                }                              }            else{                    d=d+1;                if(d>month[m]){                    d=1;                    m=m+1;                }                if(m>12){                    m=1;                    y=y+1;                }                              }            }            printf("%d-%d-%d\n",y,m,d);}int main(){    intn,y,m,d;    while(scanf("%d",&n)==1){        while(n--){            scanf("%d%d%d",&y,&m,&d);            count(y,m,d);        }    }    return0;}



0 0