【深基2.例10】小鱼的游泳时间 · 教师题解

【深基2.例10】小鱼的游泳时间

解题思路

先把两个时刻都转换为从零点起的分钟数,相减得到时长。用时长除以 60 和对 60 取余还原小时、分钟。

正确性说明

每小时为 60 分钟,换算后减法得到准确经过分钟数;商余分解保证分钟少于 60。

易错点

不要单独减分钟而忘记借位;本题保证结束晚于开始且在同一天。

复杂度

时间 O(1),空间 O(1)。

参考代码(C++11)

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    int t = c * 60 + d - a * 60 - b;
    cout << t / 60 << " " << t % 60 << "\n";
    return 0;
}
返回题目