『题解』Luogu P8071 [COCI2009-2010#7] SPAVANAC

题目传送门

题目大意

给定 \(24\) 小时制下的时间 H:M,输出 \(24\) 小时制下比该时间早 \(45\) 分钟的时刻。

思路

很简单的一道模拟题。

先来考虑小时,若 \(M < 45\),那么小时数要减去一。当小时数减去一后,需要考虑负数情况,加上一个判断 \(H < 0\),若成立,则将 \(H\) 加上 \(24\),表示到了前一天。然后,\(M\) 需要减去 \(60\) 再加上 \(45\),简便一点就是 \(M\) 加上 \(15\)

\(M \ge 45\),将 \(M\) 减去 \(45\) 即可。

代码

#include <iostream>
using namespace std;
int h,m;

int main(){
    cin >> h >> m;
    if(m<45){ // 分钟小于 45,则需要处理
        if(--h<0){ // 若已经到了前一天,则将小时数加上 24
            h+=24;
        }
        m+=15; // +15 相当于 +60-45
    }else{
        m-=45; // 否则可以直接减
    }
    cout << h << " " << m << endl;
    return 0;
}
posted @ 2022-01-24 15:36  仙山有茗  阅读(21)  评论(0编辑  收藏  举报