【深基2.例12】上学迟到 · 教师题解

【深基2.例12】上学迟到

解题思路

步行所需分钟为向上取整 s/v,再加 10 分钟。用 8:00 对应的 480 分钟减总耗时,若跨到前一天则加 1440,输出时分。

正确性说明

最少整分钟步行时间是 (s+v-1)/v,额外 10 分钟固定。到达时刻减耗时就是最晚出门时刻;按一天取模得到时钟表示。

易错点

需要向上取整;可能前一天出门;小时和分钟都补足两位。

复杂度

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

参考代码(C++11)

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

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int s, v;
    cin >> s >> v;
    int t = (480 - (s + v - 1) / v - 10) % 1440;
    if (t < 0)
        t += 1440;
    cout << setfill('0') << setw(2) << t / 60 << ":" << setw(2) << t % 60 << "\n";
    return 0;
}
返回题目