使用 N 段 C++ 實現七段顯示器上可以顯示的最大數字


給定的任務是找到在任意數量的七段顯示器上使用 N 段可以顯示的最大數字。

現在讓我們用一個例子來理解我們必須做什麼:

輸入 - N=5

輸出 - 71

解釋 - 七段顯示器上將顯示最大的數字如下:

輸入 - N=6

輸出 - 111

以下程式中使用的方案如下

  • 以下情況可以分為三種情況:

    • 情況 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() 中,首先使用以下語句檢查基本條件:

    if (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

更新於: 2020-08-17

289 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.