题目链接:https://ac.nowcoder.com/acm/problem/212956

到主站看:https://blog.csdn.net/weixin_43346722/article/details/109341925

题目

众所周知,NOIP 及其模拟赛的比赛时长均为 小时 分钟。

Alice 和 Bob 参加了于 分开始的2020牛客NOIP赛前集训营-提高组,请你告诉他们比赛结束的时间。

输入

共一行:一个形如 hh:mm 的字符串,表示比赛开始的时间。位数不足将填补

输出

共一行:一个形如 hh:mm 的字符串,表示比赛结束的时间。位数不足请填补

样例输入1

00:00

样例输出1

03:30

样例输入2

00:30

样例输出2

04:00

样例输入3

20:30

样例输出3

00:00

数据范围

存在独立的 的测试点,满足
存在独立的 的测试点,满足
存在独立的 的测试点,满足
对于全部的数据,满足
注:独立指测试点集合互不相交。

思路

这道题就是一道模拟。

我们就先不管进位,加了时间,然后在处理分钟数的进位和小时数的进位。
注意要补
注意如果分钟数加了是 或者小时数加了是 ,就要进位变成

比赛时

看到是模拟,就打出来了。

图片说明

代码

#include<cstdio>

using namespace std;

int a, b;
char c;

int main() {
    c = getchar();
    a = c - '0';
    c = getchar();
    a = a * 10 + c - '0';

    c = getchar();

    c = getchar();
    b = c - '0';
    c = getchar();
    b = b * 10 + c - '0';

    a += 3;
    b += 30;
    if (b > 59) {
        a++;
        b -= 60;
    }
    if (a > 23) {
        a -= 24;
    }

    if (a < 10) printf("0");
    printf("%d:", a);
    if (b < 10) printf("0");
    printf("%d", b);

    return 0;
}