1 条题解

  • 0
    @ 2026-10-18 17:43:47

    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

    信息

    ID
    619
    时间
    1000ms
    内存
    512MiB
    难度
    入门
    标签
    递交数
    3
    已通过
    2
    上传者