题意
- 计数两日期之间的回文日期
思路
- 枚举所有年份,构造月份判断是否合法
- 枚举所有月份和日期,构造年月日看是否在区间内
- 但是,构造年份检查月份还要分大小月以及平年闰年,相对麻烦,故构造年月日是更为便捷的解法
AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int st,ed,ans=0;
int up[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
cin>>st>>ed;
for(int i=1;i<=12;i++){
for(int j=1;j<=up[i];j++){
int y=j%10*1e7+j/10*1e6+i%10*1e5+i/10*1e4+i*1e2+j;
if(y>=st&&y<=ed)ans++;
}
}
cout<<ans;
return 0;
}
附
-
计数,构造,枚举,总是勾搭在一起
-
2025.4.19 枚举限制多的(月份),判断限制少的(年)
闰年的判断被规避了,92200229是闰年