输入描述:
输入包括两行,每行包括一个8位数字。 第一行表示牛牛指定的起始日期。 第二行表示牛牛指定的终止日期。 保证datei和都是真实存在的日期,且年份部分一定为4位数字,且首位数字不为0。 保证date1 —定不晚于date2。
输出描述:
输出一行,包含一个整数,表示在date1和date2之间,有多少个日期是回文的。
示例1
输入
复制20110101 20111231
20110101 20111231
输出
复制1
1
说明
符合条件的日期是2 0111102。
/思路:回文日期由年月日组成,如果对两个时间点中的所有日期都进行枚举,
将会多做很多的无用功,细心一点我们可以发现其实总共能形成回文日期的个数并不多,
那么如果只对月日能形成的回文日期全部例举出来,判断是否在给定区间内,
在区间内就进行计数,否则不计,最后将计的数输出即可/
#include <iostream>
using namespace std;
int main()
{
int m_day[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int i,j;
int year,a,b,sum,num=0;
cin>>a>>b;
for(i=1;i<=12;i++){
for(j=1;j<=m_day[i];j++){
year=j%10*1000+j/10*100+i%10*10+i/10;
sum=year*10000+i*100+j;
if(sum>=a&&sum<=b){
num++;
}
}
}
cout<<num<<endl;
return 0;
}