Trang chủ Tin Học Lớp 10 C++: Đồng hồ báo thức Hùng thích ngủ nướng. Một...

C++: Đồng hồ báo thức Hùng thích ngủ nướng. Một ngày nọ, Hùng có việc cần phải dậy vào đúng thời điểm hh : mm. Tuy nhiên, cậu ấy ghét việc thức dậy, vì vậy Hùn

Câu hỏi :

C++: Đồng hồ báo thức Hùng thích ngủ nướng. Một ngày nọ, Hùng có việc cần phải dậy vào đúng thời điểm hh : mm. Tuy nhiên, cậu ấy ghét việc thức dậy, vì vậy Hùng muốn tạo cảm giác thức dậy thú vị hơn bằng cách đặt đồng hồ báo thức vào một thời điểm may mắn. Sau đó, cậu ta sẽ nhấn nút báo lại trên đồng hồ để sau mỗi x phút đồng hồ lại báo thức cho đến khi đồng hồ chỉ đến hh : mm, và chỉ sau đó cậu ta sẽ dậy. Hùng muốn biết cậu ta cần nhấn nút báo thức lại ít nhất là bao nhiêu lần. Một thời điểm được coi là may mắn nếu nó chứa chữ số 7. Ví dụ: 13:07 và 17:27 là thời điểm may mắn, còn 00:48 và 21:34 thì không phải. Lưu ý rằng, không nhất thiết là thời gian đặt báo thức và thời gian thức dậy vào cùng một ngày. Bài toán đảm bảo rằng có một thời điểm may mắn để Hùng có thể đặt đồng hồ để anh ta có thể thức dậy ở hh:mm Nói cách khác, bạn cần tìm số nguyên y không âm nhỏ nhất sao cho có thể biểu diễn thời gian xxy phút trước khi đến thời điểm hh : mm có chứa chữ số 7. Đồng hồ của Hùng có kiểu 24 giờ, vì vậy sau 23:59 thì đến 00:00.
Đầu vào
Dòng đầu tiên chứa một số nguyên x.
Dòng thứ hai chứa hai số nguyên có hai chữ số, hh và mm. 
Đầu ra
In số lần tối thiểu mà Hùng cần nhấn nút báo thức lại.

Lời giải 1 :

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

bool check(int h, int m) {
    return to_string(h).find('7') != string::npos || to_string(m).find('7') != string::npos;
}

int func(int x, int h, int m) {
    int count = 0;
    while (!check(h, m)) {
        m -= x;
        if (m < 0) {
            m += 60;
            h -= 1;
        }
        if (h < 0) h += 24;
        count += 1;
    }
    return count;
}

int main() {
    int x;
    cin >> x;
    int h, m;
    cin >> h >> m;
    cout << func(x, h, m) << '\n';
    return 0;
}

Lời giải 2 :

def ktso7(h, m):
    return '7' in f"{h:02}" or '7' in f"{m:02}"
def thuchien(x, h, m):
    dem = 0
    while not ktso7(h, m):
        m -= x
        if m < 0:
            m += 60
            h -= 1
        if h < 0:
            h += 24
        dem += 1
    return dem
x = int(input())
h, m = map(int, input().split())
print(thuchien(x, h, m))

$#khanhtaon$

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 10

Lớp 10 - Năm đầu tiên ở cấp trung học phổ thông, chúng ta sẽ có nhiều bạn bè mới đến từ những nơi khác nhau. Ngôi trường mới, xa nhà hơn, mở ra một thế giới mới với nhiều điều thú vị. Hãy mở lòng đón nhận và tận hưởng những trải nghiệm mới!

Nguồn :

sưu tập

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK