hdu 6112 今夕何年(模擬)
阿新 • • 發佈:2019-01-08
今天是2017年8月6日,農曆閏六月十五。
小度獨自憑欄,望著一輪圓月,發出了“今夕何夕,見此良人”的寂寞感慨。
為了排遣鬱結,它決定思考一個數學問題:接下來最近的哪一年裡的同一個日子,和今天的星期數一樣?比如今天是8月6日,星期日。下一個也是星期日的8月6日發生在2023年。
小貼士:在公曆中,能被4整除但不能被100整除,或能被400整除的年份即為閏年。 Input第一行為T,表示輸入資料組數。
每組資料包含一個日期,格式為YYYY-MM-DD。
1 ≤ T ≤ 10000
YYYY ≥ 2017
日期一定是個合法的日期
Output對每組資料輸出答案年份,題目保證答案不會超過四位數。 Sample Input
Sample Output
小度獨自憑欄,望著一輪圓月,發出了“今夕何夕,見此良人”的寂寞感慨。
為了排遣鬱結,它決定思考一個數學問題:接下來最近的哪一年裡的同一個日子,和今天的星期數一樣?比如今天是8月6日,星期日。下一個也是星期日的8月6日發生在2023年。
小貼士:在公曆中,能被4整除但不能被100整除,或能被400整除的年份即為閏年。 Input第一行為T,表示輸入資料組數。
每組資料包含一個日期,格式為YYYY-MM-DD。
1 ≤ T ≤ 10000
YYYY ≥ 2017
日期一定是個合法的日期
Output對每組資料輸出答案年份,題目保證答案不會超過四位數。 Sample Input
3 2017-08-06 2017-08-07 2018-01-01
2023 2023
2024
挺好的模擬,我就是手殘。。
算閏年要算必須也是閏年才跳出
#include <bits/stdc++.h> using namespace std ; typedef long long ll; const int mod = 1e9+7; int a,b,c,n; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d-%d-%d",&a,&b,&c); int ans=0; if(b<2||(b==2&&c<29)) { int i; for(i=a+1;i<=9999;i++) { if((((i-1)%4==0&&(i-1)%100!=0))||((i-1)%400==0)) ans++; ans++; if(ans%7==0&&ans>0) break; } printf("%d\n",i ); } if(b>2) { int i; for(i=a+1;i<=9999;i++) { if(((i%4==0)&&(i%100!=0))||(i%400==0)) ans++; ans++; if(ans%7==0&&ans>0) break; } printf("%d\n",i); } if(b==2&&c==29) { int i; for(i=a+1;i<=9999;i++) { if((i%4==0&&(i%100!=0))||(i%400==0)) ans++; ans++; if(ans%7==0&&ans>0&&((i%4==0&&(i%100!=0))||(i%400==0))) break; } printf("%d\n",i); } } return 0; }