Hướng dẫn giải của Chênh lệch múi giờ
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người làm lời giải.
Nộp code mẫu trước khi tự giải được bài tập là một hành vi có thể bị ban.
Tác giả:
Gọi $k = B - A$ là khoảng chênh lệch của hai múi giờ GMT $A$ và GMT $B$.
Ta có: $H' = H + k$; $M' = M$. Có thể chia bài toán thành hai trường hợp:
Trường hợp 1: $ 0 \leq H' \leq 23$:
- Dễ thấy, kết quả của bài toán là $H'$ giờ $M'$ phút, ta không cần xử lý gì thêm.
Trường hợp 2:
- Với $H' < 0$, ta cộng thêm 24 vào $H'$.
- Ngược lại, với $H' \geq 24$, ta trừ đi 24 vào $H'$.
Bài toán này cũng có thể giải với một cách ngắn gọn hơn đó là sử dụng toán đồng dư. Khi đó, $H' = (H + k + 24)\mod 24$.
Code tham khảo của
void solve(){ h += b - a + 24; h %= 24; cout << h << ' ' << m; }
Bình luận