题解
2024-01-05 19:50:17
发布于:广东
17阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
bool pal(int x)
{
string s=to_string(x);
bool is_pal=1;
for (int i=0;i<ceil(s.size()*1.0/2);i++)
{
if (s[i]!=s[s.size()-i-1])
{
is_pal=0;
break;
}
}
return is_pal;
}
bool leap(int x)
{
if (x%400==0 || x%100!=0 && x%4==0)
return 1;
else
return 0;
}
int con(int x,int y,int z)
{
return x*10000+y*100+z;
}
int next(int x)
{
int y=x/10000,m=x/100%100,d=x%100;
if (leap(y))
{
if (m==2 && d==28)
return con(y,m,d+1);
}
if (m==2 && d==29 && leap(y))
return con(y,m+1,1);
else if ((m==5 || m==3 || m==1 || m==7 || m==8 || m==10) && d==31)
return con(y,m+1,1);
else if ((m==4 || m==6 || m==9 || m==11) && d==30)
return con(y,m+1,1);
else if (m==12 && d==31)
return con(y+1,1,1);
else
return con(y,m,d+1);
}
int main()
{
int a,b,sum=0;
cin >> a >> b;
for (int i=a;i<=b;i=next(i))
{
if (pal(i))
sum++;
}
cout << sum;
return 0;
}
这里空空如也
有帮助,赞一个