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);
}

1 条评论

  1. 2026年贵工程寒假训练题解 – 追求的个人博客 2026年1月4日

    […] 强迫症 题解 […]

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注