- C++ Basics
- C++ Home
- C++ Overview
- C++ Environment Setup
- C++ Basic Syntax
- C++ Comments
- C++ Data Types
- C++ Variable Types
- C++ Variable Scope
- C++ Constants/Literals
- C++ Modifier Types
- C++ Storage Classes
- C++ Operators
- C++ Loop Types
- C++ Decision Making
- C++ Functions
- C++ Numbers
- C++ Arrays
- C++ Strings
- C++ Pointers
- C++ References
- C++ Date & Time
- C++ Basic Input/Output
- C++ Data Structures

- C++ Object Oriented
- C++ Classes & Objects
- C++ Inheritance
- C++ Overloading
- C++ Polymorphism
- C++ Abstraction
- C++ Encapsulation
- C++ Interfaces

# Recursive program to print all numbers less than N which consist of digits 1 or 3 only in C++

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.

## Let us see various input output scenarios for this −

**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 **− we are given a positive integer value as 1 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 1
are 0 because the only positive integer less than 1 is 0 therefore, output is wrong input.

## Approach used in the below program is as follows

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)

## Example

#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; }

## Output

If we run the above code it will generate the following 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

- Related Articles
- Print all prime numbers less than or equal to N in C++
- Print all Semi-Prime Numbers less than or equal to N in C++
- Print all numbers less than N with at-most 2 unique digits in C++
- Find maximum product of digits among numbers less than or equal to N in C++
- Find all factorial numbers less than or equal to n in C++
- Print numbers with digits 0 and 1 only such that their sum is N in C Program.
- Python Program to Find all Numbers in a Range which are Perfect Squares and Sum of all Digits in the Number is Less than 10
- Compute sum of digits in all numbers from 1 to n
- Write all the numbers less than 100 which are common multiples of 3 and 4.
- Find Multiples of 2 or 3 or 5 less than or equal to N in C++
- Program to Find Out Integers Less than n Containing Multiple Similar Digits in C++
- Print all n-digit numbers whose sum of digits equals to given sum in C++
- Print triplets with sum less than or equal to k in C Program
- Linear magnification produced by a concave mirror may be:(a) less than 1 or equal to 1 (b) more than 1 or equal to 1(c) less than 1, more than 1 or equal to 1 (d) less than 1 or more than 1
- Linear magnification produced by a convex lens can be:(a) less than 1 or more than 1.(b) less than 1 or equal to 1.(c) more than 1 or equal to 1.(d) less than 1, equal to 1 or more than 1.