#26492. 时间问题
时间问题
题目描述
小航的闹钟会记录初始时间和经过的秒数,请编写程序,输入一个24小时制的初始时间(时、分、秒)和一个正整数表示经过的秒数,计算并输出闹钟最终的时间(时、分、秒),同时输出最终时间为当天的第几秒,最终时间仍遵循24小时制规则。
补充条件:保证经过n秒后,时间不会到第二天(即初始时间加上n秒的总时长仍在当天00:00:00 ~ 23:59:59范围内)。
输入格式
输入一行四个非负整数,依次表示初始时间的小时h、分钟m、秒s和经过的秒数n(保证输入的初始时间合法,且初始时间加n秒不会跨天)。
输出格式
第一行,三个由空格分隔的非负整数,依次表示最终时间的小时、分钟、秒; 第二行,一个非负整数,表示最终时间为当天的第几秒。
10 20 30 150
10 23 0
37380
23 59 50 9
23 59 59
86399
15 40 25 999
15 57 4
57424
提示
- 1000秒 = 16分40秒,远小于1小时(3600秒),结合“初始时间加n秒不跨天”的补充条件,可确保计算无需处理跨天逻辑;
- 核心解题思路:①初始时间转总秒数 → 加经过秒数(无需取模86400) → 逆向转换回时、分、秒;②当天秒数为最终总秒数;
- 核心公式:
- 1小时=3600秒,1分钟=60秒,1天总秒数=86400(24×3600);
- 初始总秒数 = ;
- 最终总秒数 = 初始总秒数 + n;
- 最终小时 = 最终总秒数 / 3600(整数除法);
- 剩余秒数 = 最终总秒数 % 3600;
- 最终分钟 = 剩余秒数 / 60(整数除法);
- 最终秒数 = 剩余秒数 % 60;
- 当天秒数 = 最终总秒数(即最终h×3600 + 最终m×60 + 最终s)。