Home > Article > Backend Development > Recursive program prints all numbers less than N that consist only of the digits 1 or 3
We are given an integer variable as N storing the positive integer type value. The task is to recursively print all the numbers less than given value N having digit 1, 3 or the combination of both.
Input − int num = 40
Output − Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: 33 31 13 11 3 1
Explanation − we are given a positive integer value as 40 stored in a variable num. Now, we will recursively find out all the numbers containing digits 1, 3 or both and those numbers less than 40 are 1, 3, 11, 13, 31, 33
Input − int num = 5
Output − Recursive program to print all numbers less than N which consist of digits 1 or 3 only are: 3 1
Explanation − we are given a positive integer value as 40 stored in a variable num. Now, we will recursively find out all the numbers containing digits 1, 3 or both and those numbers less than 5 are 1 and 3.
Input − int num = 1
Output − Wrong Input
Explanation − 我们给定了一个存储在变量num中的正整数值为1。现在,我们将递归地找出所有包含数字1、3或两者的数字,并且这些数字小于1 are 0 because the only positive integer less than 1 is 0 therefore, output is wrong input.
Input an integer variable as num. Pass it to the function Recursive_Numbers(num) by passing num as the parameter to the function.
Inside the function Recursive_Numbers(num)
Declare a variable as check of type bool and set it with 1.
Check IF num greater than 0 then start WHILE temp greater than 0 AND check to 1. Set digit to temp % 10.
Check IF digit not equals 1 AND digit not equals to 3 then set check to 0. Set temp = temp / 10.
Check IF check is 1 then print num.
Make a recursive call to the function 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
The above is the detailed content of Recursive program prints all numbers less than N that consist only of the digits 1 or 3. For more information, please follow other related articles on the PHP Chinese website!