今天是2017年8月6日,农历闰六月十五。
小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。
为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。
小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。
小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。
为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。
小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。
每组数据包含一个日期,格式为YYYY-MM-DD。
1 ≤ T ≤ 10000
YYYY ≥ 2017
日期一定是个合法的日期
3 2017-08-06 2017-08-07 2018-01-01
2023 20232024
挺好的模拟,我就是手残。。
算闰年要算必须也是闰年才跳出
#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; }