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