【題解】ZeroJudge d669: 11677 – Alarm Clock

【題目敘述】https://zerojudge.tw/ShowProblem?problemid=d669
【解題想法】

  • 先把 h : m 換算成分鐘,h*60+m
  • 如果計算出來可以睡的分鐘數為負數,表示跨日了,再加上 1440 分鐘。
#include <iostream>
using namespace std;

int main() {
    int h1, m1, h2, m2;
    while (cin >> h1 >> m1 >> h2 >> m2){
        if (h1 == 0 && m1 == 0 && h2 == 0 && m2 == 0)
            break;

        int ans = h2 * 60 + m2 - h1 * 60 - m1;
        if (ans < 0) ans += 1440;

        cout << ans << "\n";
    }
    return 0;
}

Python code (credit: Amy Chou)

import sys

lines = sys.stdin.readlines()

for line in lines[:-1]:
    h1, m1, h2, m2 = map(int, line.split())
    ans = h2 * 60 + m2 - h1 * 60 - m1
    if ans < 0:
        ans += 1440
    print(ans)
分享本文 Share with friends