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

Possible Timings (เวลาที่เป็นไปได้) ใน C++

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

Seven-segment display เป็นหน้าจอพิเศษที่ใช้แสดงตัวเลขโดยการเปิดเส้นของหน้าจอ

ตัวอย่างของ seven-segment display คือ:

Possible Timings (เวลาที่เป็นไปได้) ใน C++

มาดูตัวอย่างเพื่อเข้าใจปัญหา:

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