Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 N 세그먼트를 사용하여 Seven Segment Display에 표시할 수 있는 최대 수


7세그먼트 표시의 ant number에서 N세그먼트를 사용하여 표시할 수 있는 최대 수를 찾는 작업이 주어집니다.

이제 예제를 사용하여 무엇을 해야 하는지 이해합시다 -

입력 - N=5

출력 − 71

설명 − 7세그먼트 디스플레이에 다음과 같이 가장 큰 숫자가 표시됩니다. −

C++에서 N 세그먼트를 사용하여 Seven Segment Display에 표시할 수 있는 최대 수

입력 - N=6

출력 − 111

C++에서 N 세그먼트를 사용하여 Seven Segment Display에 표시할 수 있는 최대 수

아래 프로그램에서 사용하는 접근 방식은 다음과 같습니다.

  • 다음 상황은 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() 함수에서 먼저

    를 사용하여 기본 조건을 확인합니다.

    if (N ==1 || N ==0)

  • 그런 다음 다른 if 문을 사용하여 N이 짝수인지 확인합니다. 그렇다면 짝수일 때 최상위 자릿수인 "1"을 출력하고 여기에 2개의 세그먼트를 사용하고 있으므로 MaxNumber(N - 2)를 호출합니다.

  • 다른 if 문을 사용하여 N이 홀수인지 확인하십시오. 그렇다면 홀수의 경우 최상위 자리인 "7"을 출력하고 여기서 3개의 세그먼트를 사용하고 있으므로 MaxNumber(N - 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