Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm bao nhiêu lần đồng hồ kỹ thuật số đã cho hiển thị các chữ số giống nhau trong C ++

Giả sử chúng ta có một đồng hồ kỹ thuật số kiểu HH:MM. Trong đó hiển thị thời gian theo giờ và chỉ phút. Chúng tôi được cung cấp một số giờ và phút làm đầu vào. Mục đích là để đếm số lần tất cả các chữ số giống nhau. H =M.

Điều này xảy ra 3 lần một ngày, đầu tiên vào lúc 00:00 nửa đêm, sau đó là lúc 11:11 và kéo dài lúc 22:22. Như thời gian được biểu thị ở định dạng 24 giờ.

Đầu vào

Input: 12 hours 22 minutes.

Đầu ra

2

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

Đầu vào

Input: 48 hours 22 minutes.

Đầu ra

5

Giải thích - Đối với thời gian 00:00 và 11:11, 22:22.

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Các biến số giờ và phút lưu trữ dữ liệu đầu vào.
  • Hàm countIdentical (int giờ, int phút) mất phút và giờ và trả về số đếm là không. thời gian tất cả các chữ số HH; MM đều giống nhau.
  • Đối với số lượng khởi tạo 00:00 là 1.
  • Đối với mỗi giờ là 11 và 22 và các phút là 11 và 22 số gia tăng là 1.
  • Trả về kết quả sau khi vòng lặp kết thúc.
  • Đếm là kết quả mong muốn.
  • In số lượng.

Ví dụ

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
// examples- 11:11 11hrs 11 mins, 22:22
int countIdentical(int hours, int minutes){
   // Initialized to 1 because of 00:00
   int i, count=1;
   // For double digit hours
   for (i = 0; i <= 99 && i < hours; i = i + 11) {
      // Double digit minutes
      if ((i % 10) < minutes)
      count++;
   }
   return count;
}
int main(){
   int hours = 48;
   int minutes = 22;
   cout <<"Times when all digits are identical in HH:MM :"
   << countIdentical(hours, minutes);
   return 0;
}

Đầu ra

Times when all digits are identical in HH:MM : 6