【牛客】时间

来源:牛客网

题目描述

众所周知,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 0h<24,0m<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);
}
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页