就硬模拟就行了
对于每一天 每一年 每一月进行枚举
#include<iostream>
#include<algorithm>
using namespace std;
int num1,num2,cnt;
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool check(int n)
{
if((n % 4 == 0 || n % 100 != 0) && n % 400 == 0)
return true;
else
return false;
}
bool pan(int n)
{
int rk = 0,k =n;
while(n)
{
rk = rk * 10 + n % 10;
n /= 10;
}
if(rk == k)
return true;
else
return false;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> num1;
int y1 = num1 / 10000;
int m1 = num1 / 100 % 100;
int d1 = num1 % 100;
cin >> num2;
int y2 = num2 / 10000;
int m2 = num2 / 100 % 100;
int d2 = num2 % 100;
if(num1 == num2 && pan (num1))
cnt ++;
while(y1 != y2 || m1 != m2 || d1 != d2)
{
if(check(y1))
month[2] = 29;
int xulie = y1 * 10000 + m1 * 100 + d1;
if(pan(xulie))
cnt ++;
d1 ++;
if(d1 > month[m1])
{
m1 ++;
d1 = 1;
if(m1 > 12)
{
y1 ++;
m1 = 1;
}
}
}
cout << cnt << endl;
return 0;
}