Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Đếm số lần đồng hồ số hiển thị các chữ số giống nhau trong C++


Giả sử chúng ta có một đồng hồ số dạng HH:MM chỉ hiển thị giờ và phút. Chúng ta được cho số giờ và phút làm đầu vào. Mục tiêu là đếm số lần tất cả các chữ số đều giống nhau. H = M.

Điều này xảy ra 3 lần một ngày: đầu tiên là 00:00 nửa đêm, tiếp theo là 11:11 và cuối cùng là 22:22. Vì thời gian được biểu diễn theo định dạng 24 giờ.

Ví dụ

Đầu vào

Input: 12 giờ 22 phút.

Đầu ra

2

Giải thích − Với thời gian 00:00 và 11:11. Hai lần trong 12 giờ.

Đầu vào

Input: 48 giờ 22 phút.

Đầu ra

5

Giải thích − Với thời gian 00:00, 11:11, 22:22.

Phương pháp sử dụng trong chương trình dưới đây

  • Biến hours và minutes lưu trữ đầu vào.
  • Hàm countIdentical(int hours, int minutes) nhận giờ và phút, trả về số lần tất cả chữ số HH:MM giống nhau.
  • Khởi tạo count = 1 cho 00:00.
  • Với mỗi giờ là 11 và 22 và phút là 11 và 22 thì tăng count lên 1.
  • Trả về kết quả sau khi vòng lặp kết thúc.
  • Count là kết quả mong muốn.
  • In count.

Ví dụ mã nguồn

// C++ implementation of the approach
#include <bits/stdc++.h> 
using namespace std; 

// ví dụ: 11:11 11hrs 11 mins, 22:22
int countIdentical(int hours, int minutes) { 
    // Khởi tạo 1 vì có 00:00
    int i, count = 1; 
    // Với giờ hai chữ số
    for (i = 0; i <= 99 && i < hours; i = i + 11) { 
        // Phút hai chữ số
        if ((i % 10) < minutes) 
            count++; 
    } 
    return count; 
} 

int main() { 
    int hours = 48; 
    int minutes = 22; 
    cout << "Số lần tất cả chữ số giống nhau trong HH:MM: " 
         << countIdentical(hours, minutes); 
    return 0; 
}

Kết quả

Số lần tất cả chữ số giống nhau trong HH:MM: 6