1. 程式人生 > >CODE[VS] 2692 小明過生日

CODE[VS] 2692 小明過生日

opened 輸入 stream 就是 iostream 小明 TP put AD

題目描述 Description

今天是小明的生日,請問下一個生日在什麽時候.格式:年 月 日。

輸入描述 Input Description

小明的生日

輸出描述 Output Description

下一個小明的生日

樣例輸入 Sample Input

2013 2 13

樣例輸出 Sample Output

2014 2 13

數據範圍及提示 Data Size & Hint

int範圍,灰常陰險滴~~

我感覺不是int範圍陰險。

是題目陰險。

像這種一看就會,看起來非常簡單的題目最坑。

這個題就是要註意考慮到閏年的問題。

下面是一份zz的代碼。

技術分享圖片
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<cstring>
 6 using namespace std;
 7 
 8 int a,b,c;
 9 
10 int main()
11 {
12     scanf("%d%d%d
",&a,&b,&c); 13 if(b!=2||(b==2&&c!=28&&c!=29)) 14 { 15 printf("%d %d %d",a+1,b,c); 16 return 0; 17 } 18 else if(c==29) 19 { 20 printf("%d 2 28",a+1); 21 return 0; 22 } 23 else 24 { 25 if(((a+1
)%4==0&&(a+1)%100!=0)||(a+1)%400==0) 26 { 27 printf("%d 2 29",a+1); 28 } 29 else printf("%d 2 28",a+1); 30 return 0; 31 } 32 return 0; 33 }
考慮是考慮到了,但是考慮得有些問題啊。。

33分zz,,無語。

下面看ac代碼,

技術分享圖片
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<cstring>
 6 using namespace std;
 7 
 8 int a,b,c;
 9 
10 int main()
11 {
12     scanf("%d%d%d",&a,&b,&c);
13     if(b!=2||(b==2&&c!=28&&c!=29))
14     {
15         printf("%d %d %d",a+1,b,c);
16         return 0;
17     }
18     else if(c==29)
19     {
20         if((a+4)%100==0) printf("%d 2 29",a+8); //就這兒,
21         else printf("%d 2 29",a+4);
22         return 0;
23     }
24     else 
25     {
26         if(((a+1)%4==0&&(a+1)%100!=0)||(a+1)%400==0)
27         {
28             printf("%d 2 29",a+1);
29         }
30         else printf("%d 2 28",a+1);
31         return 0;
32     }
33     return 0;
34 }
就變了一點點,應該能理解

CODE[VS] 2692 小明過生日