adtom @ 2021-01-19 12:34:29
#include<iostream>
using namespace std;
int main(){
int date1,date2;
int i,j,k,num;
int x,y,p,q,c,d;
cin>>date1>>date2; //输入两个日期
int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; //月份天数,2.29日对应9220是闰年
int b[8];
x=date1/10000;
y=date2/10000;
for(i=x;i<=y;i++){
for(j=1;j<=12;j++){
for(k=1;k<a[j];k++){
date1=i*10000+j*100+k;
p=date1-i*10000;
c=p/1000+p/100%10*10+p/10%10*100+p%10*1000;
if(c==i){
num++;
}
}
}
}
cout<<num;
return 0;
}
by LHQing @ 2021-01-19 12:39:24
@adtom
hack_input:
20111103
20111103
by w23c3c3 @ 2021-01-19 12:39:25
@adtom 你这样求的不一定是在范围之间的(只有年份在范围里面,月日不一定在)
by LHQing @ 2021-01-19 12:39:48
@adtom 需要判断日期是否在date1与date2之间
by adtom @ 2021-01-19 21:53:40
#include<iostream>
using namespace std;
int main(){
int date1,date2;
int i,j,k,num;
int x,y,p,q,c,d;
cin>>date1>>date2; //输入两个日期
int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; //月份天数,2.29日对应9220是闰年
int b[8];
int date=date1;
x=date1/10000;
y=date2/10000;
for(i=x;i<=y;i++){
for(j=1;j<=12;j++){
for(k=1;k<a[j];k++){
date1=i*10000+j*100+k;
if(date1<=date2&&date1>=date){
p=date1-i*10000;
c=p/1000+p/100%10*10+p/10%10*100+p%10*1000;
if(c==i){
num++;
}
}
}
}
}
cout<<num;
return 0;
}
我加了个判断后还是不行
by adtom @ 2021-01-19 21:54:02
@LHQing
by adtom @ 2021-01-20 22:02:08
逻辑好像没错就是num没初始化原因,给num初始化,然后只通过了一部分