【牛客】时间

来源:牛客网

题目描述

众所周知,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);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值