有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。输入格式:输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即5点30分表示为530;流逝的分钟数可能超过60,也可能是负数。输出格式:输出四位数字表示的终止时间。题目保证起始时间和终止时间在同一天内。输入样例:1120 110输出样例:1310
有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。 输入格式: 输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即5点30分表示为530;流逝的分钟数可能超过60,也可能是负数。 输出格式: 输出四位数字表示的终止时间。题目保证起始时间和终止时间在同一天内。 输入样例: 1120 110 输出样例: 1310
题目解答
答案
我们来一步一步地解决这个问题。
题目理解:
我们要根据一个起始时间(用四位数字表示,如1120表示11点20分)和一个流逝的分钟数(可能是正数,也可能是负数),计算出终止时间,并以同样的四位数字格式输出。
解题思路:
-
解析输入:
- 输入是两个整数,例如:
1120 110。 - 第一个数是起始时间,我们要从中提取小时和分钟。
- 第二个数是流逝的分钟数,可以是正数或负数。
- 输入是两个整数,例如:
-
将起始时间转换为总分钟数:
- 比如1120 → 11小时20分 → 11 * 60 + 20 = 680分钟。
-
加上流逝的分钟数:
- 比如680 + 110 = 790分钟。
-
将总分钟数转换回小时和分钟:
- 790分钟 ÷ 60 = 13小时余10分钟 → 13小时10分 → 输出1310。
-
注意格式:
- 小时是个位数时,不需要补0,比如5点30分 → 530。
- 所以输出的时候,直接拼接小时和分钟即可。
代码实现思路(伪代码):
# 读取输入
start_time, minutes_passed = map(int, input().split())
# 提取小时和分钟
hour = start_time // 100
minute = start_time % 100
# 转换为总分钟数
total_minutes = hour * 60 + minute
# 加上流逝的分钟数
total_minutes += minutes_passed
# 转换回小时和分钟
new_hour = total_minutes // 60
new_minute = total_minutes % 60
# 输出结果
print(f"{new_hour}{new_minute:02d}")
测试样例:
输入:
1120 110
计算:
- 1120 → 11小时20分 → 680分钟
- 680 + 110 = 790分钟
- 790 ÷ 60 = 13小时余10分钟 → 输出 1310
最终答案:
输出样例为:
$\boxed{1310}$
解析
考查要点:本题主要考察时间的加减运算,涉及整数分解、时间单位转换以及格式化输出。
解题核心思路:
- 分解起始时间:将四位数字的时间拆解为小时和分钟。
- 转换为总分钟数:将小时和分钟统一转换为总分钟数,便于加减运算。
- 处理分钟数变化:加上流逝的分钟数后,调整总分钟数到同一天范围内。
- 转换回时间格式:将总分钟数转换为小时和分钟,并按格式输出。
关键点:
- 小时和分钟的分解需注意起始时间可能为三位数(如
530表示5点30分)。 - 总分钟数的调整需确保结果在同一天内(0 ≤ 总分钟数 < 1440)。
- 格式化输出时,小时部分不补零,分钟部分补零到两位。
步骤1:分解起始时间
将四位数字的起始时间拆分为小时和分钟:
- 小时 = 起始时间的前两位(整数除法
// 100)。 - 分钟 = 起始时间的后两位(取余
% 100)。
步骤2:转换为总分钟数
将小时和分钟转换为总分钟数:
$\text{总分钟数} = \text{小时} \times 60 + \text{分钟}$
步骤3:计算新的总分钟数
加上流逝的分钟数,并调整到同一天范围内:
$\text{总分钟数} = (\text{总分钟数} + \text{流逝分钟数}) \% 1440$
步骤4:转换回小时和分钟
将总分钟数转换为小时和分钟:
- 小时 = 总分钟数的整除部分(
// 60)。 - 分钟 = 总分钟数的余数部分(
% 60)。
步骤5:格式化输出
小时部分直接拼接,分钟部分补零到两位:
$\text{输出格式} = f"{\text{小时}}{ \text{分钟}:02d }"$