Hướng dẫn giải của [200 đề thầy Đức] Bài 68: Đồng hồ báo thức


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 viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Hướng dẫn giải

Đặt báo thức sớm 45 phút so với giờ Steve cần dậy. Đầu vào là giờ h và phút m, đầu ra là giờ x và phút y sau khi lùi 45 phút, theo đồng hồ 24 giờ.

Cách làm
  1. Đổi giờ h và phút m ra tổng số phút trong ngày: h nhân 60 cộng m.

  2. Trừ 45 phút. Nếu kết quả âm (ví dụ 0 giờ 30 phút trừ 45 phút), ta cộng thêm 1440 phút (tức là 24 giờ) để quay về cuối ngày.

  3. Đổi lại thành giờ bằng phép chia cho 60 và phút bằng phép chia lấy dư cho 60.

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

int main() {
    int h, m;
    cin >> h >> m;
    // Đổi giờ và phút ra tổng số phút trong ngày
    int t = h * 60 + m;
    // Đặt chuông sớm 45 phút
    t = t - 45;
    // Nếu âm thì quay vòng về cuối ngày (1440 phút = 24 giờ)
    if (t < 0) {
        t = t + 1440;
    }
    cout << t / 60 << " " << t % 60 << "\n";
    return 0;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.