题目描述 Description
今天是小明的生日, 请问下一个生日在什么时候. 格式: 年 月 日.
输入描述 Input Description
小明的生日
输出描述 Output Description
下一个小明的生日
样例输入 Sample Input
2013 2 13
样例输出 Sample Output
2014 2 13
数据范围及提示 Data Size & Hint
int 范围, 灰常阴险滴~~
我感觉不是 int 范围阴险.
是题目阴险.
像这种一看就会, 看起来非常简单的题目最坑.
这个题就是要注意考虑到闰年的问题.
下面是一份 zz 的代码.
- #include<iostream>
- #include<cstdio>
- #include<cmath>
- #include<algorithm>
- #include<cstring>
- using namespace std;
- int a,b,c;
- int main()
- {
- scanf("%d%d%d",&a,&b,&c);
- if(b!=2||(b==2&&c!=28&&c!=29))
- {
- printf("%d %d %d",a+1,b,c);
- return 0;
- }
- else if(c==29)
- {
- printf("%d 2 28",a+1);
- return 0;
- }
- else
- {
- if(((a+1)%4==0&&(a+1)%100!=0)||(a+1)%400==0)
- {
- printf("%d 2 29",a+1);
- }
- else printf("%d 2 28",a+1);
- return 0;
- }
- return 0;
- }
考虑是考虑到了, 但是考虑得有些问题啊..
33 分 zz,, 无语.
下面看 ac 代码,
- #include<iostream>
- #include<cstdio>
- #include<cmath>
- #include<algorithm>
- #include<cstring>
- using namespace std;
- int a,b,c;
- int main()
- {
- scanf("%d%d%d",&a,&b,&c);
- if(b!=2||(b==2&&c!=28&&c!=29))
- {
- printf("%d %d %d",a+1,b,c);
- return 0;
- }
- else if(c==29)
- {
- if((a+4)%100==0) printf("%d 2 29",a+8); // 就这儿,
- else printf("%d 2 29",a+4);
- return 0;
- }
- else
- {
- if(((a+1)%4==0&&(a+1)%100!=0)||(a+1)%400==0)
- {
- printf("%d 2 29",a+1);
- }
- else printf("%d 2 28",a+1);
- return 0;
- }
- return 0;
- }
就变了一点点, 应该能理解
来源: http://www.bubuko.com/infodetail-2638437.html