来源:牛客网
题目描述
众所周知,NOIP及其模拟赛的比赛时长均为3小时30分钟。
Alice和Bob参加了于h时m分开始的2020牛客NOIP赛前集训营-提高组,请你告诉他们比赛结束的时间。
输入描述:
共一行:一个形如hh:mm的字符串,表示比赛开始的时间。位数不足将填补0。
输出描述:
共一行:一个形如hh:mm的字符串,表示比赛结束的时间。位数不足请填补0。
示例1
输入
00:00
输出
03:30
示例2
输入
00:30
输出
04:00
示例3
输入
20:30
输出
00:00
备注:
存在独立的30%的测试点,满足h<20,m<30。
存在独立的30%的测试点,满足h<20。
存在独立的30%的测试点,满足m<30。
对于全部的数据,满足
0
≤
h
<
24
,
0
≤
m
<
60
0\leq h<24, 0\leq m<60
0≤h<24,0≤m<60 。
注:独立指测试点集合互不相交。
解题思路
就是一个简单的加减法
考试的时候想当然,处理24:00这个问题的时候,只用了
if (h == 24) h -= 24
这种绝错的方式
if (h >= 24) h %= 24
Code
#include <iostream>
#include <cstdio>
using namespace std;
string s;
int i, x, y;
int main(){
scanf ("%d:%d", &x, &y);
y = y + x * 60;//全部换算为分钟
y += 3 * 60 + 30;
y %= 24 * 60;//%24小时的分钟
x = y / 60, y %= 60;//换算成hh:mm形式
if (x < 10) printf ("0");//记得往前补0
printf ("%d:", x);
if (y < 10) printf ("0");
printf ("%d", y);
}