这个题目的意思就是说,输入一个年份,求它的下一个跟它在一年当中日期完全相同的年份(比如x年的第一天为周一,y年的第一天也为周一,而且他们又同为闰年或者同为平年),则x年与y年的日期完全相同
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n;
//判断是否为闰年函数
bool isleap(int n){
if((n%400 == 0) || (n%4 == 0 && n%100 != 0)) return false;
else return true;
}
int main(){
//每次输入进一个年份
while(scanf("%d", &n)!=EOF){
int cnt=0, t=n+1; //初始化一个计数器cnt为0, t为我们要求的年份为n+1
while(1){
if(!isleap(t)) cnt+=2; //闰年366%7=2,所以计数器加2
else cnt+=1; //平年365%7=1,所以计数器加1
cnt%=7; //每次计数器余7
//如果能整除,并且同为闰年或者同为平年,则输出年份
if(cnt==0 && isleap(t) == isleap(n)){
cout<<t<<endl;
break;
}
t++;
}
}
return 0;
}