70分求助dalao
查看原帖
70分求助dalao
516634
LYQ310北极企鹅楼主2023/3/25 10:03

思路已经很明晰了,枚举年份

#include<iostream>
#include<cstdio>
using namespace std;
int g[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
bool run(int a){
	if(a%400==0) return 1;
	if(a%4==0&&a%100!=0) return 1;
	return 0;
}
int main()
{
	//freopen("num.in","r",stdin);
	//freopen("num.out","w",stdout);
	int ans=0;
	string d1,d2;
	int yo=0,yt=0;
	cin>>d1;cin>>d2;
	for(int i=0;i<4;i++){
		yo=yo*10+d1[i]-'0';
		yt=yt*10+d2[i]-'0';
	}
	for(int i=yo;i<yt;i++){
		int m=i%10*10+i%100/10;
		int n=i%100/100*10+i/1000;
		if(run(i)) g[2]=29;
		if(m<=12&&n<=g[m]) ans++;
		g[2]=28;
	}
	if(d2[3]*10+d2[2]<=d2[4]*10+d2[5]&&d2[1]*10+d2[0]<=d2[6]*10+d2[7]) ans++;
	cout<<ans<<endl;
	//fclose(stdin);fclose(stdout);
	return 0;
}
2023/3/25 10:03
加载中...