题解:CF1950C Clock Conversion

· · 题解

更好的阅读体验

本题是一个简单的时间转换程序,将给定的二十四小时制时间转换为十二小时制时间。

模拟即可,读取字符串后,提出小时和分钟部分,下标为 0 和 1 的数字组成小时部分,3 和 4 组成分钟部分。

按照题意,根据小时部分和分钟部分,如果小时部分小于 12,则时间为 AM,如果小时部分等于 0,则小时部分改为 12,小时部分大于 12,时间为 PM,小时部分减 12 输出即可。

#include <bits/stdc++.h>
using namespace std;
int T;
int main() {
    cin >> T;
    while (T--) {
        string s, ans1 = "", ans2 = "", ans3 = "", ans;
        cin >> s;
        ans = s.substr(2, 3);
        int n;
        n = (s[0] - '0') * 10 + (s[1] - '0');
        ans1 += s[0], ans1 += s[1], ans1 += ans, ans1 += " AM";
        ans2 += "12", ans2 += ans;
        if (n % 12 > 9) {
            if (n % 12 == 10)ans3 += "10";
            else ans3 += "11";
        } else {
            ans3 += "0";
            ans3 += (n % 12 + '0');
        }
        ans3 += ans;
        ans3 += " PM";
        cout << ((n < 12) ? ((n == 0) ? ans2 + " AM" : ans1): ((n == 12) ? ans2 + " PM" : ans3))<< endl;
    }
}