80分求助,请大佬帮忙看看思路哪里有问题
查看原帖
80分求助,请大佬帮忙看看思路哪里有问题
1299540
wohainengxueyidian楼主2024/5/16 23:07
#include<bits/stdc++.h>
using namespace std;
bool rn(int x){
	if((x%4==0&&x%100!=0)||x%400==0){
		//TODO
		return 1;
	}else return 0;
}
int yf(int y,int x){
	if(x==1||x==3||x==5||x==7||x==8||x==10||x==12){
		//TODO
		return 31;
	}else if(x==4||x==6||x==9||x==11){
		//TODO
		return 30;
	}else{
		if(rn(y)==1){
			//TODO
			return 29;
		}else return 28;
	}
}
bool hw(int x){
	int y=0,tmp=x;
	while(tmp>0){
		//TODO
		y=y*10+tmp%10;
		tmp/=10;
	}
	if(x==y){
		//TODO
		return 1;
	}else return 0;
}

int main(){
	string a,b;
	string a_year,b_year,a_month,b_month,a_day,b_day;
	int cnt=0;
	getline(cin,a);
	getline(cin,b);
	for(int i=0;i<=3;i++){
		//TODO
		a_year+=a[i];
		b_year+=b[i];
	}
	int ayear=std::stoi(a_year);
	int byear=std::stoi(b_year);
	for(int i=4;i<=5;i++){
		//TODO
		a_month+=a[i];
		b_month+=b[i];
	}
	int amonth=std::stoi(a_month);
	int bmonth=std::stoi(b_month);
	for(int i=6;i<=7;i++){
		//TODO
		a_day+=a[i];
		b_day+=b[i];
	}
	int aday=std::stoi(a_day);
	int bday=std::stoi(b_day);
	for(int i=ayear;i<=byear;i++){
		//TODO
		rn(i);
		int fmonth,lmonth;
		if(i==ayear){
			//TODO
			fmonth=amonth;
			lmonth=12;
		}else if(i==byear){
			//TODO
			fmonth=1;
			lmonth=bmonth;
		}else{
			fmonth=1;
			lmonth=12;
		}
		for(int j=fmonth;j<=lmonth;j++){
			//TODO
			int lday,fday;
			if(j==amonth){
				//TODO
				fday=aday;
				lday=yf(i,j);
			}else if(j==bmonth){
				//TODO
				fday=1;
				lday=bday;
			}else{
				fday=1;
				lday=yf(i,j);
			}
			for(int k=fday;k<=lday;k++){
				//TODO
				int temp=i*10000+j*100+k;
				if(hw(temp)==1){
					//TODO
					cnt++;
				}
			}
		}
	}
	cout<<cnt;
	return 0;
} 
2024/5/16 23:07
加载中...