题目详情
![在这里插入图片描述](https://img-blog.csdnimg.cn/590925fc7d324081b25073dbadd1614b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYWlfbW9l,size_20,color_FFFFFF,t_70,g_se,x_16)
解题代码
#include<iostream>
using namespace std;
int date1,date2;
int months[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool check(int data)
{
int year = data/10000;
int month = data%10000/100;
int day = data%100;
if(!month || month > 12 ||!day) return false;
if(month!=2 && day>months[month]) return false;
if (month == 2)
{
bool leap = year % 4 == 0 && year % 100 || year % 400 == 0;
if (day > 28 + leap) return false;
}
return true;
}
int main()
{
cin >> date1 >> date2;
int res;
for(int i=0;i<10000;i++)
{
int x=i,r=i;
for(int j=0;j<4;j++) r=r*10+x%10,x/=10;
if(r>=date1 && r<=date2 && check(r)) res++;
}
cout << res;
return 0;
}