【題目敘述】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)