#include <bits/stdc++.h>
using namespace std;
bool isValid(int date){//判断日期是否合法
int year = date/10000;
int month = (date%10000)/100;
int day = date%100;
if(month <1 || month>12) return false;
if(day<1) return false;
if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
if(day>31) return false;
}else if(month==4 || month==6 || month==9 || month==11){
if(day>30) return false;
}else if(month==2){
if((year%4==0 && year%100!=0) || year%400==0) {
if(day>29) return false;
}else{
if(day>28) return false;
}
}
return true;
}
bool is\_huiwen(string str)//判断是否是回文数
{
string temp = str;
reverse(temp.begin(),temp.end());
return str==temp;
}
bool is\_abab(string str)//判断是否是abab型数
{
return str[0] == str[2] && str[1] == str[3] && is\_huiwen(str);
}
int main()
{
int n;
cin>>n;
string first\_huiwen,first\_abab;
while(1)
{
n++;
if(!isValid(n)) continue;
string str = to\_string(n);
if(is\_huiwen(str)&&first\_huiwen.empty()){
first\_huiwen = str;
}
if(is\_abab(str)&&first\_abab.empty()){
first\_abab = str;
}
if(!first\_huiwen.empty()&&!first\_abab.empty()){
break;
}
}
cout<<first\_huiwen<<endl<<first\_abab<<endl;
return 0;
}
0 回复
0 转发
0 喜欢
1 阅读



