题目描述
小白专用for语句暴力解法,有时间再写详解
样例
#include<iostream>
using namespace std;
bool checkyear(int n)
{
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int day=n%100;
int month=n%10000/100;
int year=n/10000;
if(month<0||month>12)return false;
if(day<0||(day>days[month]&&month!=2))return false;
int x=0;
if(month==2)
x=year%4==0&&year%100||year%400==0;
if(day>days[month]+x)return false;
return true;
}
bool checkhui(int n)
{
int a,b,c,d,e,f,g,h;
a=n/10000000;
b=n/1000000%10;
c=n/100000%10;
d=n/10000%10;
e=n/1000%10;
f=n/100%10;
g=n/10%10;
h=n%10;
if(a==h&&b==g&&c==f&&d==e)
return true;
else
return false;
}
bool checkABAB(int n)
{
int a0,a1,a2,a3;
a0=n/10000000;
a1=n/1000000%10;
a2=n/100000%10;
a3=n/10000%10;
if(a0==a2&&a1==a3&&a0!=a1)
return true;
else
return false;
}
int main()
{
int n,flag=1;
cin>>n;
for(int i=n;i<=89991231;i++)
{
if(checkyear(i)&&checkhui(i)&&i>n&&flag)
{
flag=0;
cout<<i<<endl;
}
if(checkyear(i)&&checkhui(i)&&checkABAB(i)&&i>n)
{
cout<<i<<endl;
break;
}
if(i==89991231)
{
cout<<90011009<<endl;
cout<<90900909<<endl;
}
}
return 0;
}
为什么 是 88991231
你在说当i=89991231的情况?
当i=89991231时,还需要找出下一组回文数才能AC