使用 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;
}

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输出

如果我们运行以上代码,我们将得到以下输出:

71

更新于: 2020-08-17

289 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始
广告