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

จำนวนสูงสุดที่สามารถแสดงบน Seven Segment Display โดยใช้ N เซ็กเมนต์ใน C++


กำหนดภารกิจคือค้นหาจำนวนสูงสุดที่สามารถแสดงได้โดยใช้ N เซ็กเมนต์บนการแสดงจำนวนมดของการแสดงเซ็กเมนต์เจ็ดส่วน

ตอนนี้มาทำความเข้าใจสิ่งที่เราต้องทำโดยใช้ตัวอย่าง -

ป้อนข้อมูล − N=5

ผลผลิต − 71

คำอธิบาย − ตัวเลขที่ใหญ่ที่สุดจะแสดงดังต่อไปนี้บนจอแสดงผลเจ็ดส่วน −

จำนวนสูงสุดที่สามารถแสดงบน Seven Segment Display โดยใช้ N เซ็กเมนต์ใน C++

ป้อนข้อมูล − N=6

ผลผลิต − 111

จำนวนสูงสุดที่สามารถแสดงบน Seven Segment Display โดยใช้ N เซ็กเมนต์ใน C++

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

  • สถานการณ์ต่อไปนี้สามารถแบ่งออกเป็น 3 กรณี -

    • กรณีที่ 1

      หาก N เป็น 0 หรือ 1 จะไม่สามารถแสดงตัวเลขใดๆ ได้

    • กรณีที่ 2

      ถ้า N เป็นเลขคี่ จากนั้นตัวเลขที่สามารถแสดงด้วยเลขคี่ของเซ็กเมนต์คือ 2, 3, 5, 7 และ 8 โดยที่ 7 ใช้จำนวนเซ็กเมนต์น้อยที่สุดนั่นคือ 3 ดังนั้น 7 เป็นตัวเลขที่สำคัญที่สุดในกรณีนี้

    • กรณีที่ 3

      ถ้า N เป็นคู่ จากนั้นตัวเลขที่สามารถแสดงด้วยเลขคี่ของเซ็กเมนต์ได้คือ 0, 1, 4, 6, 9 และ 8 โดยที่ 1 มีจำนวนเซ็กเมนต์น้อยที่สุดนั่นคือ 2 ดังนั้น 1 จึงเป็นตัวเลขที่สำคัญที่สุดในกรณีนี้ .

  • ในฟังก์ชัน MaxNumber() ให้ตรวจสอบเงื่อนไขพื้นฐานก่อนโดยใช้

    ถ้า (N ==1 || N ==0)

  • จากนั้นใช้คำสั่ง if อื่น ตรวจสอบว่า N เป็นคู่หรือไม่ ถ้าใช่ ให้พิมพ์ “1” เนื่องจากเป็นตัวเลขที่สำคัญที่สุดในกรณีคู่ และเรียก MaxNumber(N - 2) เนื่องจากมีการใช้ 2 เซ็กเมนต์ที่นี่

  • ใช้คำสั่ง if อื่นเพื่อตรวจสอบว่า N เป็นเลขคี่หรือไม่ หากเป็นเช่นนั้น ให้พิมพ์ “7” เนื่องจากเป็นตัวเลขที่สำคัญที่สุดในกรณีคี่และเรียก MaxNumber(N - 3) เนื่องจากมีการใช้ 3 ส่วนที่นี่

ตัวอย่าง

#include <iostream>
using namespace std;
void MaxNumber(int N){
   //Condition to check base case
   if (N == 1 || N == 0){
      return;
   }
   //If the number is even
   if (N % 2 == 0){
      cout << "1";
      MaxNumber(N - 2);
   }
   //If the number is odd
   else if (N % 2 == 1){
      cout << "7";
      MaxNumber(N - 3);
   }
}
//Main function
int main(){
   int N;
   N = 5;
   MaxNumber(N);
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น เราจะได้ผลลัพธ์ดังต่อไปนี้ -

71