Examples of Recursion in C++

The following examples will improve the understanding of C++ recursion:

Example 1: Fibonacci Series using Recursion

C++
// C++ Program to find fibonacci series using recursion
#include <iostream>
using namespace std;

// Function for fibonacci
int fib(int n)
{
    // Stop condition
    if (n == 0)
        return 0;
    // Stop condition
    if (n == 1 || n == 2)
        return 1;
    // Recursion function
    else
        return (fib(n - 1) + fib(n - 2));
}

// Driver Code
int main()
{
    // Initialize variable n.
    int n = 5;
    cout << "Fibonacci series of 5 numbers is: ";
    // for loop to print the fibonacci series.
    for (int i = 0; i < n; i++) {
        cout << fib(i) << " ";
    }
    return 0;
}

Output
Fibonacci series of 5 numbers is: 0 1 1 2 3 

In this example, the Fibonacci function calls itself with smaller inputs (n – 1 and n – 2) until it reaches the base case (n <= 1) and returns a value.

Example 2: Print Array in reverse order using recursion.

C++
// C++ Program to print array using
// recursion
#include <iostream>
using namespace std;

// recursive function to print array
void pArray(int* arr, int n)
{
    // base condition
    if (n == 0) {
        return;
    }
    // recursive call
    cout << arr[n - 1] << ' ';
    pArray(arr, n - 1);  
}

int main()
{
    // declaring array
    int arr[5] = { 1, 2, 3, 4, 5 };
    // calling function
    pArray(arr, 5);
    return 0;
}

Output
5 4 3 2 1 

C++ Recursion

Assume that you have to paint a few balls. If you do it alone, it will take a lot of time. One thing you can do is to take help from your friend. Assuming that you have the same work speed, the task will be done in half of the time. Now, instead of taking help from only one of your friends, you take help from multiple friends such that each friend have only one ball to paint. The task will be done much faster as compared to when you were doing it alone. Recursion is a problem-solving technique that works in a similar way.

Similar Reads

C++ Recursion

Recursion in C++ is a technique in which a function calls itself repeatedly until a given condition is satisfied. In other words, recursion is the process of solving a problem by breaking it down into smaller, simpler sub-problems....

Example of C++ Recursion

The following C++ program illustrates how to perform recursion....

Working of Recursion in C++

To understand how C recursion works, we will again refer to the example above and trace the flow of the program....

Memory Management in C++ Recursion

Like all other functions, the recursive function’s data is stored in the stack memory in the form of a stack frame. This stack frame is deleted once the function returns some value. In recursion,...

Types of Recursion in C++

There are two different types of recursion which are as follows:...

Examples of Recursion in C++

The following examples will improve the understanding of C++ recursion:...

Applications of Recursion

Recursion has many applications in computer science and programming. Here are some of the most common applications of recursion:...

Drawbacks of Recursion

Performance: Recursive algorithms can be less efficient than iterative algorithms in some cases, particularly if the data structure is large or if the recursion goes too deep.Memory usage: Recursive algorithms can use a lot of memory, particularly if the recursion goes too deep or if the data structure is large. Each recursive call creates a new stack frame on the call stack, which can quickly add up to a significant amount of memory usage.Code complexity: Recursive algorithms can be more complex than iterative algorithms.Debugging: Recursive algorithms can be more difficult to debug than iterative algorithms, particularly if the recursion goes too deep or if the program is using multiple recursive calls.Stack Overflow: If the recursion goes too deep, it can cause a stack overflow error, which can crash the program....

Summary

There are two types of cases in recursion i.e. recursive case and a base case.Infinite recursion may lead to running out of stack memory.Each recursive call makes a new copy of that method in the stack memory.The base case is used to terminate the recursive function when the case turns out to be true.Examples of Recursive algorithms: Merge Sort, Quick Sort, Tower of Hanoi, Fibonacci Series, Factorial Problem, etc....

FAQs on C++ Recursion

Q1. What is the difference between iteration and recursion?...