สมมติว่าเรามีนาฬิกาดิจิตอลประเภท 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