思路:这道题本来是属于字符串基础里的,所以一开始我想用字符串做,但是发现有点无从下手。然后我看了看大家的解题方法,找到一个比较好的思路,而且不需要使用字符串
就是遍历构造出每个回文日期,(注意因为回文,只需要考虑四个数字)然后判断该日期是否在给定日期区间内。而且不需要考虑是否是闰年,因为0229反过来是9220,整个日期是92200229,而9220年是闰年
#include<iostream>
using namespace std;
int main()
{
int d[13] = { 0,31,29,31,30,31,30,31,31,30,31,30,31 };
int a, b, c;
cin >> a >>b;
int sum, count = 0;
for (int i = 1; i <= 12; i++)
for (int j = 1; j <= d[i]; j++)
{
c = (j % 10) * 1000 +(j / 10) * 100 +(i % 10) * 10 +(i / 10);
sum = c * 10000 + i * 100 + j;
if (sum<a || sum>b) {
continue;
}
count++;
}
cout << count;
return 0;
}