549 字
2 分钟阅读
强迫症
题目描述
小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写 199808,有的人只写 9808。有强迫症的小强请你写个程序,把所有人的出生年月都整理成 年年年年-月月 格式。对于那些只写了年份后两位的信息,我们默认小于 22 都是 20 开头的,其他都是 19 开头的。
输入格式
输入在一行中给出一个出生年月,为一个 6 位或者 4 位数,题目保证是 1000 年 1 月到 2021 年 12 月之间的合法年月。
输出格式
在一行中按标准格式 年年年年-月月 将输入的信息整理输出。
输入样例 1
9808
输出样例 1
1998-08
输入样例 2
0510
输出样例 2
2005-10
输出样例 3
196711
输出样例 3
1967-11
题意
将输入的四位或者六位日期转换成六位日期后按 YYYY-MM 格式输出。
思路
对于6位的日期,直接输出即可,判断是不是六位日期只需要看是不是大于等于100000。
对于四位日期,年份后两位小于22默认是20开头,大于等于默认是19开头。
分别判断一下即可。
代码
void solve(){
int n;
cin >> n;
int y = n / 100;
int m = n % 100;
if(n < 100000){ // 不是六位日期
if(y < 22){
cout << 20;
}else{
cout << 19;
}
}
printf("%02d-%02d",y,m);
}

[…] 强迫症 题解 […]