题目
有时候人们用四位数字表示一个时间,比如
1106
1106
1106 表示
11
11
11 点
零
6
零6
零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即
5
5
5 点
30
30
30 分表示为
530
530
530。注意,第二个数字表示的分钟数可能超过
60
60
60,也可能是负数。
输入格式
输入在一行中给出 2 2 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 5 5 点 30 30 30 分表示为 530 530 530;流逝的分钟数可能超过 60 60 60,也可能是负数。
输出格式
输出四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。
输入样例
1120 110
输出样例
1310
题解
解题思路
首先输入起始时间和流逝分钟,将起始时间直接转换为分钟数 ( 1 小时 = 60 分钟) (1小时 = 60分钟) (1小时=60分钟),然后再将流逝分钟加上,然后在将其转换为 24 24 24 小时制输出即可(注意:分钟数小于 10 10 10 时要在补 0 0 0 )。
完整代码
#include<iostream>
using namespace std;
int main(void)
{
int x, y, h, m, time;
cout << "请输入起始时间以及流逝的分钟数: "; // 提交时注释此行
cin >> x >> y;
h = (int)(x / 100); // 起始小时转化为分钟
m = x - h * 100; // 算出起始分钟
time = h * 60 + m + y; // 分钟数相加
h = time / 60; // 算出流逝后的小时
m = time % 60; // 算出流逝后的分钟
if (m / 10 == 0) // 如果 m 是个位数,控制输出(可以用printf)
{
cout << h << '0' << m << endl;
return 0;
}
cout << h << m << endl;
return 0;
}