ในปัญหานี้ เราได้รับเวลาสองหลักโดยใช้ glow digit display หรือ seven-segment display (เหมือนในเครื่องคิดเลข) งานของเราคือคำนวณความเป็นไปได้ของการเกิดเวลาอื่นๆ ที่สามารถเกิดขึ้นได้โดยการเปิดหรือปิดหนึ่งบิตของหน้าจอ
Seven-segment display เป็นหน้าจอพิเศษที่ใช้แสดงตัวเลขโดยการเปิดเส้นของหน้าจอ
ตัวอย่างของ seven-segment display คือ:

มาดูตัวอย่างเพื่อเข้าใจปัญหา:
Input - 7 5
Output -
Explanation - สำหรับ 7 มี 5 ตัวเลขที่สามารถใช้แทนได้ คือ 9, 3, 8, 0, 7 สำหรับ 5 มี 4 ตัวเลขที่สามารถใช้แทนได้ ดังนั้นจำนวนวิธีทั้งหมดจะเป็น 5*4 = 20
เพื่อแก้ปัญหานี้ เราจะต้องเก็บทุกองค์ประกอบที่สามารถสร้างได้โดยการเปิดหรือปิดหนึ่งแท่งของหน้าจอ โซลูชันจะเป็นผลคูณของค่าสำหรับทั้งสองหลักของเวลา
ตัวอย่าง
โปรแกรมแสดงการนำโซลูชันของเราไปใช้งาน:
#include <iostream>
using namespace std;
int num[10] = { 2, 7, 2, 3, 3, 4, 2, 5, 1, 2 };
int AllPossibleTimmings(int timing) {
return ((num[timing/10] * num[timing%10]));
}
int main() {
int timing = 71;
cout << "All Possible timings from " << timing << " are : " << AllPossibleTimmings(timing);
return 0;
}
ผลลัพธ์
All Possible timings from 71 are : 35