AcWing 466. 回文日期
原题链接
简单
作者:
噷梢
,
2025-04-10 20:00:49
· 福建
,
所有人可见
,
阅读 2
#include<bits/stdc++.h>
using namespace std;
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int sleap(int x){
if(x%4==0&&x%100!=0)return 1;
if(x%400==0)return 1;
return 0;
}
int f(int x){
int d=x%100;
int m=x/100%100;
int y=x/10000%10000;
if(m==2){
if(sleap(y)&&d<=29&&d!=0)return 1;
else {
if(d<=28&&d!=0)return 1;
}
}
if(m<1||m>12)return 0;
if(month[m]<d||d==0)return 0;
return 1;
}
bool f1(string s){
string s1=s;
reverse(s.begin(),s.end());
if(s==s1)return true;
return false;
}
int main(){
int d,m;
cin>>d;
cin>>m;
if(d>m)
swap(d,m);
int k=0;;
for(int i=1000;i<=10000;i++){
int x=i,r=i;
for(int j=0;j<4;j++)
r=r*10+x%10,x/=10;
if(f(r)&&r>=d&&r<=m)k++;
}
cout<<k;
return 0;
}