Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับจำนวนครั้งที่นาฬิกาดิจิตอลที่ระบุแสดงตัวเลขเหมือนกันใน C++


สมมติว่าเรามีนาฬิกาดิจิตอลประเภท HH:MM ซึ่งแสดงเวลาเป็นชั่วโมงและนาทีเท่านั้น เราได้รับจำนวนชั่วโมงและนาทีเป็นข้อมูลเข้า เป้าหมายคือการนับจำนวนครั้งที่ตัวเลขทั้งหมดเท่ากัน H=M.

สิ่งนี้เกิดขึ้น 3 ครั้งต่อวัน ครั้งแรกเวลา 00:00 น. เที่ยงคืน จากนั้นเวลา 11:11 น. และสุดท้ายเวลา 22:22 น. ตามเวลาที่แสดงในรูปแบบ 24 ชั่วโมง

อินพุต

Input: 12 hours 22 minutes.

ผลลัพธ์

2

คำอธิบาย − สำหรับเวลา 00:00 น. และ 11:11 น. สองครั้งใน 12 ชั่วโมง

อินพุต

Input: 48 hours 22 minutes.

ผลลัพธ์

5

คำอธิบาย − สำหรับเวลา 00:00 น. และ 11:11 น., 22:22 น.

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • ตัวแปรชั่วโมงและนาทีที่เก็บอินพุต
  • Function countIdentical(int hour, int minutes) ใช้เวลานาทีและชั่วโมงและส่งคืนจำนวนนับ ของจำนวนครั้งที่หลัก HH;MM เหมือนกัน
  • สำหรับการเริ่มต้น 00:00 น. นับเป็น 1
  • สำหรับแต่ละชั่วโมงเป็น 11 และ 22 และนาทีที่เพิ่มทีละ 11 และ 22 ขึ้น 1
  • ส่งคืนผลลัพธ์หลังจากสิ้นสุดการวนซ้ำ
  • จำนวนคือผลลัพธ์ที่ต้องการ
  • พิมพ์จำนวน

ตัวอย่าง

// 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;
}

ผลลัพธ์

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