题目描述
小杨计划在某个时刻开始学习,并决定在学习k秒后开始休息。
小杨想知道自己开始休息的时刻是多少。
输入格式
前三行每行包含一个整数,分别表示小杨开始学习时刻的时h、分m、秒s。
第四行包含一个整数k,表示小杨学习的总秒数。
输出格式
输出一行,包含三个整数,分别表示小杨开始休息时刻的时、分、秒。
数据范围
对于全部数据,保证有1 ≤ h ≤ 12,0 ≤ m, s ≤ 59,1 ≤ k ≤ 3600。
输入样例1
12
59
59
10
输出样例1
13 0 9
样例解释
小杨在时刻12:59:59开始学习,学习10秒后开始休息,即在13:0:9时刻开始休息。
解法
公式:h小时m分钟s秒 = h×3600+m×60+s秒
解题步骤
1. 将开始时间转化为秒
2. 计算结束时间 = 开始时间 + 学习时间k
3. 将结束时间转换为对应小时、分钟、秒数
· 小时数 = 结束时间秒数 / 3600
· 分钟数 = 结束时间秒数 / 60 % 60 或 秒数 % 3600 / 60
· 秒数 = 结束时间秒数 % 60
4. 输出小时数、分钟数、秒数
参考程序
#include<iostream>
using namespace std;
int main()
{
int h,m,s,k;
cin>>h>>m>>s>>k;
s = h * 3600 + m * 60 +s; // 将开始时间转换为秒
s = s + k; // 结束时间 = 开始时间 + 学习时间
h = s / 3600; // 计算结束时间的小时数
m = s / 60 % 60; // 计算结束时间的分钟数
s = s % 60; // 计算结束时间的秒数
cout<<h<<' '<<m<<' '<<s<<endl; // 输出结束时间
return 0;
}