#include<iostream>
#include<string.h>
using namespace std;
int n;
int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int x){
int year = x/10000;
int month = (x%10000)/100;
int day = x%100;
if(!day || month < 0 || month >12) return false;
if(month!=2 && day>months[month]) return false;
if(month==2){
if((year % 400==0) || (year%4==0 && year%100!=0)){
if(day>29) return false;
}
else {
if(day>28) return false;
}
}
return true;
}
bool check1(int x){
string s=to_string(x);
int len = s.size();
for(int i=0,j=len-1;i<j;i++,j--){
if(s[i]!=s[j]) return false;
}
return true;
}
bool check2(int x){
if(check1(x)){
string s = to_string(x);
if(s[0]!=s[2] || s[1]!=s[3] || s[0]==s[1]) return false;
return true;
}
return false;
}
int main(){
scanf("%d",&n);
int flag = 0;
for(int i=n+1;;i++){
if(check(i)){
if(check1(i) && !flag){
printf("%d\n",i);
flag = 1;
}
if(check2(i)){
printf("%d",i);
return 0;
}
}
}
}
回文日期(c++实现)
最新推荐文章于 2024-03-27 11:25:26 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)