7-7 美好日子 (10 分)

据说2021年12月2日是一个美好日子,因为这是一个完全对称日!这里认为一个美好日子是一个共8位数字的完全对称日(例如20211202),其中年份占4位,月份、日份都是2位。对于给定的年份,请判断该年是否存在美好日子。

输入格式:

首先输入一个正整数T(<8000)表示测试数据的组数,然后输入T组测试数据。对于每组测试数据,输入一个年份y(2020<y<10000)。

输出格式:

对于每组测试数据,输出一行。若年份y存在美好日子,则输出该日期,否则输出“none”。引号不必输出。

输入样例:

2
2021
2022

输出样例:

20211202
none

本题其实不难,但本人却因为多加一个else一直错误,发一下这个代码以示纪念。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int year;
	int T;
	int month,day;
	cin>>T;           //输入测试组数
	while(T--){
		cin>>year;
		month=(year%10)*10+year/10%10;      //用month记录月份
		if(month>12||month==0){
			cout<<"none"<<endl;
			continue;
		}
		
		day=(year/100%10)*10+year/1000;     //用day记录日期
		if(day==0||day>31){
			cout<<"none"<<endl;
			continue;
		}
		
		else {
			if((month==4||month==6||month==9||month==11)&&day>30){     //如果是30天的月
					cout<<"none"<<endl;
						continue;
			}
			else if(month==2){                   //2月份情况
				if((year%4==0 && year%100!=0) ||year%400==0){
					if(day>29){
					cout<<"none"<<endl;
					continue;	
					}
				
				}
				else if(day>28){
					cout<<"none"<<endl;
					continue;
				}
				
			}           //所有错误情况已排除,可以输出答案
		cout<<year<<year%10<<year/10%10<<year/100%10<<year/1000<<endl;      

		}
	}
  return 0;
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值