#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int data){//先将不正确的全部排除,最后返回true
int year=data/10000;
int month=data%10000/100;
int day=data%100;
if(month==0||month>12) return false ;
if(day==0||month!=2&&day>days[month]) return false;
if(month==2){
int leap=year%100&&year%4==0||year %400==0;//如果是闰年,结果为1
if(day>28+leap) return false ;//闰年二月28+1=29天
}
return true;
}
signed main(){
int data1,data2;cin>>data1>>data2;
int res=0;
for(int i=1000;i<10000;i++){
int data=i,x=i;
for(int j=1;j<=4;j++){
data=data*10+x%10;
x/=10;
}
if(data1<=data && data<=data2 && check(data)) res++;
}
cout<<res<<endl;
return 0;
}
Acwing:466回文日期
于 2024-03-19 11:19:06 首次发布