양의 정수 유형 값을 저장하는 N으로 정수 변수가 제공됩니다. 작업은 숫자 1, 3 또는 둘의 조합을 갖는 주어진 값 N보다 작은 모든 숫자를 재귀적으로 인쇄하는 것입니다.
여기에 대한 다양한 입력 출력 시나리오를 살펴보겠습니다 -
입력 - 정수 숫자 =40
출력 − 숫자 1 또는 3으로만 구성된 N보다 작은 모든 숫자를 인쇄하는 재귀 프로그램은 다음과 같습니다. 33 31 13 11 3 1
설명 - 변수 num에 저장된 양의 정수 값이 40으로 주어집니다. 이제 1, 3 또는 둘 다를 포함하는 모든 숫자를 재귀적으로 찾을 것이며 40보다 작은 숫자는 1, 3, 11, 13, 31, 33입니다.
입력 - 정수 숫자 =5
출력 − 숫자 1 또는 3으로만 구성된 N보다 작은 모든 숫자를 인쇄하는 재귀 프로그램은 다음과 같습니다. 3 1
설명 - 변수 num에 저장된 양의 정수 값이 40으로 주어집니다. 이제 1, 3 또는 둘 다를 포함하는 모든 숫자를 재귀적으로 찾을 것이며 5보다 작은 숫자는 1과 3입니다.
입력 - 정수 숫자 =1
출력 - 잘못된 입력
설명 - 변수 num에 저장된 양의 정수 값이 1로 주어집니다. 이제 1, 3 또는 둘 다를 포함하는 모든 숫자를 재귀적으로 찾을 것이며 1보다 작은 양의 정수는 0이므로 출력이 잘못된 입력이므로 1보다 작은 숫자는 0입니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
정수 변수를 num으로 입력합니다. 함수에 매개변수로 num을 전달하여 Recursive_Numbers(num) 함수에 전달합니다.
-
Recursive_Numbers(num)
함수 내부-
bool 유형의 검사로 변수를 선언하고 1로 설정하십시오.
-
숫자가 0보다 큰지 확인한 다음 온도가 0보다 큰 동안 시작하고 1로 확인합니다. 숫자를 온도 % 10으로 설정합니다.
-
IF 숫자가 1과 같지 않고 숫자가 3과 같지 않은지 확인한 다음 확인을 0으로 설정합니다. 설정 온도 =temp / 10.
-
IF 검사가 1인지 확인한 다음 번호를 인쇄하십시오.
-
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; }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다.
Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: 33 31 13 11 3 1