>백엔드 개발 >C++ >재귀 프로그램은 숫자 1 또는 3으로만 구성된 N보다 작은 모든 숫자를 인쇄합니다.

재귀 프로그램은 숫자 1 또는 3으로만 구성된 N보다 작은 모든 숫자를 인쇄합니다.

王林
王林앞으로
2023-08-29 23:05:061450검색

재귀 프로그램은 숫자 1 또는 3으로만 구성된 N보다 작은 모든 숫자를 인쇄합니다.

양의 정수형 값을 저장하는 정수형 변수 N이 주어집니다. 작업은 숫자 1, 3 또는 둘의 조합을 갖는 주어진 값 N보다 작은 모든 숫자를 재귀적으로 인쇄하는 것입니다.

이에 대한 다양한 입력 출력 시나리오를 살펴보겠습니다. −

Input − int num = 40

출력 − 숫자 1 또는 3으로만 구성된 N보다 작은 모든 숫자를 인쇄하는 재귀 프로그램은 다음과 같습니다. 33 31 13 11 3 1

설명 − 변수 num에 저장된 양의 정수 값 40이 제공됩니다. 이제 숫자 1, 3 또는 둘 다를 포함하는 모든 숫자를 재귀적으로 찾아보겠습니다. 40보다 작은 숫자는 1, 3, 11, 13, 31, 33

Input − int num = 5

Output − 숫자 1 또는 3으로만 구성된 N보다 작은 모든 숫자를 인쇄하는 재귀 프로그램은 다음과 같습니다. 3 1

설명 − 변수 num에 저장된 양의 정수 값 40이 제공됩니다. 이제 숫자 1, 3 또는 둘 다를 포함하는 모든 숫자와 5보다 작은 숫자를 재귀적으로 찾아보겠습니다. 1과 3입니다.

Input − int num = 1

Output − 잘못된 입력

Explanation − 我们给定了一个存储재变weightnum中的正整数值1 。现지금,我们将递归地找流所有包含数字1, 3或两者的数字 , 并且这些数字 小于1 1보다 작은 양의 정수는 0이므로 출력이 잘못되었습니다.

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

  • 정수 변수를 num으로 입력합니다. num을 함수의 매개변수로 전달하여 Recursive_Numbers(num) 함수에 전달합니다.

  • 함수 Recursive_Numbers(num)

    • 변수를 bool 유형의 검사로 선언하고 1로 설정합니다.

    • IF 숫자가 0보다 큰지 확인한 다음 WHILE temp가 0보다 크고 1로 확인합니다. 숫자를 temp % 10으로 설정합니다.

    • IF 숫자가 1과 같지 않고 숫자가 3이 아닌지 확인한 다음 확인을 0으로 설정합니다. temp = temp / 10.

    • IF 검사가 1인지 확인하고 num을 인쇄하세요.

    • Recursive_Numbers(num - 1) 함수를 재귀적으로 호출하세요.

      如果我们运行上述代码,将会生成以下输流
    • #include <iostream>
      using namespace std;
      void Recursive_Numbers(int num){
         bool check = 1;
         int temp = num;
         if(num > 0){
            while(temp > 0 && check == 1){
               int digit = temp % 10;
               if (digit != 1 && digit != 3){
                  check = 0;
               }
               temp = temp / 10;
            }
            if(check == 1){
               cout<< num << " ";
            }
            Recursive_Numbers(num - 1);
         }
      }
      int main(){
         int num = 40;
         if(num <= 1){
            cout<<"Wrong input";
         }
         else{
            cout<<"Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: ";
            Recursive_Numbers(num);
         }
         return 0;
      }

위 내용은 재귀 프로그램은 숫자 1 또는 3으로만 구성된 N보다 작은 모든 숫자를 인쇄합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제