80分,求调
查看原帖
80分,求调
1053898
taoyi20110328楼主2024/10/7 09:35
#include<bits/stdc++.h>
using namespace std;
int a,b,c,x,y,z,ans; 
string s,u;
char e[7];
int main()
{	
	cin>>s>>u;
	a=(s[0]-'0')*1000+(s[1]-'0')*100+(s[2]-'0')*10+(s[3]-'0');
	b=(s[4]-'0')*10+(s[5]-'0');
	c=(s[6]-'0')*10+(s[7]-'0');
	
	x=(u[0]-'0')*1000+(u[1]-'0')*100+(u[2]-'0')*10+(u[3]-'0');
	y=(u[4]-'0')*10+(u[5]-'0');
	z=(u[6]-'0')*10+(u[7]-'0');
//	cout<<a<<b<<c<<x<<y<<z<<endl; 
	for(int i=a;i<=x;i++){
		int _1;
		if(i==x) _1=y;
		else _1=12;
		int j;
		if(i==a) j=b;
		else j=1;
		for(;j<=_1;j++){
			int _2;
			if(j==y) _2=z;
			else{
				if(j==2 and ((i%4==0&&i%100!=0)||(i%400==0))?1:0) 	_2=29;
				else{
	 				if(j==1 or j==3 or j==5 or j==7 or j==8 or j==10 or j==12) _2=31;
	 				else if(j==2) _2=28;
	 				else _2=30;
	 			}
			}
			int w;
			if(j==b) w=c;
			else w=1;
			for(;w<=_2;w++){
				if(i<10)        e[0]='0',e[1]='0',e[2]='0',e[3]=char(i+'0');
				else if(i<100)  e[0]='0',e[1]='0',e[2]=char(i/10+'0'),e[3]=char(i%10+'0');
				else if(i<1000) e[0]='0',e[1]=char(i/100+'0'),e[2]=char(i/10%10+'0'),e[3]=char(i%10+'0');
				else 		    e[0]=char(i/1000+'0'),e[1]=char(i/100%10+'0'),e[2]=char(i/10%10+'0'),e[3]=char(i%10+'0');
				if(j<10)		e[4]='0',e[5]=(char)j+'0';
				else 			e[4]=char(j/10+'0'),e[5]=char(j%10+'0');
				if(w<10)		e[6]='0',e[7]=(char)w+'0';
				else e[6]=char(w/10+'0'),e[7]=char(w%10+'0');
				
				cout<<e<<endl;
				if(e[0]==e[7] and e[1]==e[6] and e[2]==e[5] and e[3]==e[4])
					ans++;
			}
		}
	}
	cout<<ans<<endl;
	return 0;	
}
2024/10/7 09:35
加载中...