文章目录
题目
有时候人们用四位数字表示一个时间,比如
1106 1106 表示
11 11 点
零 6 零6
分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即
5 5 点
30 30 分表示为
530 530 。注意,第二个数字表示的分钟数可能超过
60 60 ,也可能是负数。
输入格式
输入在一行中给出 2 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 5 点 30 30 分表示为 530 530 ;流逝的分钟数可能超过 60 60 ,也可能是负数。
输出格式
输出四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。
输入样例
1120 110
输出样例
1310
题解
解题思路
首先输入起始时间和流逝分钟,将起始时间直接转换为分钟数 ( 1 小时 = 60 分钟) (1小时 = 60分钟) ,然后再将流逝分钟加上,然后在将其转换为 24 24 小时制输出即可(注意:分钟数小于 10 10 时要在补 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; }