F_L_Bird @ 2024-08-06 16:22:32
代码如下
#include<string>
#include<iostream>
using namespace std;
int get_next_day(int n){
int y = n / 10000;
int m = n % 10000 / 100;
int d = n % 100;
if(((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10) && d == 31) || ((m == 4 || m == 6 || m == 9 || m == 11) && d == 30)) //非二月跨月
{
return y * 10000 + (m + 1) * 100 + 1;
}
else if(m == 2) //二月跨月
{
if((y % 4 == 0 && y % 100 != 0 || y % 400 == 0) && d == 29 || d == 28) //闰年29日或平年28日跨月
{
return y * 10000 + (m + 1) * 100 + 1;
}
}
if(m == 12 && d == 31) //十二月跨年
{
return (y + 1) * 10000 + 100 + 1;
}
else //看着落日猛然发现又过了一天
{
return y * 10000 + m * 100 + d + 1;
}
return 0;
}
bool check(int i){ //检查是否为回文
string s = to_string(i);
for(int i = 0;i < s.length() / 2;i += 1)
{
if(s[i] != s[s.length() - i - 1])
{
return false;
}
}
return true;
}
int main(){
int date1,date2;
long long ans = 0;
cin>>date1>>date2;
while(date1 <= date2)
{
if(check(date1))
{
ans += 1;
}
date1 = get_next_day(date1);
}
cout<<ans<<endl;
return 0;
}
请各位dalao指点迷津qwq