1 条题解
-
0
G1011 [GESP202406 一级] 休息时间 题解
难度:1(GeekPi教学评定);知识点:时间换算、整数除法、取模运算。
解题思路
把原时刻换成秒,加上k,再用除法和取余拆回小时、分钟、秒:t/3600、t/60%60、t%60。
为什么正确
总秒数保留了完整的进位,按3600与60分解后所得三个量正好组成新时刻。
易错点
不要额外对小时取模12或24;按题面直接计时,结果可出现13时。
复杂度
时间:O(1);额外空间:O(1)。
参考代码(C++17)
#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int h,m,s,k; cin>>h>>m>>s>>k; int t=h*3600+m*60+s+k; cout<<t/3600<<" "<<t/60%60<<" "<<t%60; }来源与说明
本题解为配套教学整理,非官方题解。题库使用自行生成的测试数据,5个测试点。
- 1