题目链接: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; }