返回题解分享
讨论 / 题解分享/ 帖子详情

回文日期(编程题) - 题解

using namespace std;
int main()
{
	string a;
	cin >> a;
	int cnt1=0,cnt2=0;
	int y1=stoi(a.substr(0,4)),m1=stoi(a.substr(4,2)),d1=stoi(a.substr(6,2));
	for(int y=y1;;y++)
		for(int m=1;m<=12;m++)
			for(int d=1;d<=31;d++)
			{
				if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
				}
				else if(m==2)
				{
					if(y%400==0||(y%100!=0&&y%4==0))
					{
						if(d>29)	break;
					}
					else 
					{
						if(d>28)	break;
					}
				}else {
					if(d>30)	break;
				}
				if(y<=y1&&m<=m1&&d<=d1)	
				{
					continue;	
				}
				string a,b;
				a=to_string(y);
				b=(m<10?'0'+to_string(m):to_string(m))+(d<10?'0'+to_string(d):to_string(d));
				reverse(a.begin(),a.end());
				if(a==b&&!cnt1)
				{
					cnt1++;
					printf("%d%02d%02d\n",y,m,d);
				}
				if(a==b&&b.substr(0,2)==b.substr(2,2)&&b[0]!=b[1]&&!cnt2)
				{
					cnt2++;
					printf("%d%02d%02d",y,m,d);
				}
				if(cnt1&&cnt2)	return 0;
			}
	return 0;
}
0 回复 0 转发 0 喜欢 0 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!