Recursion in C++
Recursion in C++ Programming
In this page, we have explained all about recursion in C++ program which includes the different types of recursion in C++.
What is Recursion in C++?
Recursion is a method of solving a problem where the solution depends on solutions to smaller instances of the same problem. A recursive function is a function that calls itself with a smaller input until it reaches a base case, at which point it returns a result.
Example of a recursive function in C++ that calculates the factorial of a given number:
Run
#include <iostream>
using namespace std;
int factorial(int n)
{
if (n == 0)
return 1;
else
return n * factorial(n - 1);
}
int main()
{
int num;
cout << "Enter a number: "; cin >> num;
int result = factorial(num);
cout << "The factorial of " << num << " is " << result << endl;
return 0;
}
Output
Enter a number: 7 The factorial of 7 is 5040
Note
The function factorial calculates the factorial of a given number n by calling itself with n - 1 until it reaches the base case of n == 0, at which point it returns 1. This is an example of a tail-recursive function, which means that the recursive call is the last thing the function does before returning a value. Tail-recursion can be optimized by the compiler, so it is generally preferred over non-tail-recursive functions.
Types of Recursion
There are two main types of recursion in C++:
- Tail recursion
- Non-tail recursion
Tail Recursion
- This is a type of recursion where the recursive call is the last thing the function does before returning a value.
- Tail-recursive functions are generally preferred over non-tail-recursive functions because they can be optimized by the compiler.
int factorial(int n) {
if (n == 0) {
return 1;
}
return n * factorial(n - 1);
}
Non Tail Recursion
- This is a type of recursion where the recursive call is not the last thing the function does before returning a value.
- Non-tail-recursive functions are generally less efficient than tail-recursive functions because they cannot be optimized by the compiler.
int factorial(int n) {
if (n == 0) {
return 1;
}
int result = factorial(n - 1);
return n * result;
} Program to calculate the nth number in the Fibonacci sequence using Recursion
Run
#include <iostream>
using namespace std;
int fibonacci(int n)
{
if (n <= 0)
return 0;
else if (n == 1)
return 1;
else
return fibonacci (n - 1) + fibonacci (n - 2);
}
int main()
{
int num;
cout << "Enter a number: ";
cin >> num;
int result = fibonacci(num);
cout << "The " << num << "th number in the Fibonacci sequence is " << result << endl;
return 0;
}
Output
Enter a number: 13 The 13th number in the Fibonacci sequence is 233
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others

Login/Signup to comment