Skip to content
Indirect Recursion and direct recursion

Direct & Indirect Recursion

In programming, Recursion means a function calling itself. The best use of recursion is when we have a big/complex problem and is solved by breaking down the problem into smaller instances. In this post, we’ll see direct and indirect recursion.

Types of Recursion

Generally, there are two main types of Recursion based on whether the function calls itself or calls another,

  • Direct Recursion
  • Indirect Recursion

Direct Recursion

As in the name itself, direct recursion is a single step recursion case where the function calls itself.

Example

#include <stdio.h>
void fun(int n)
{
    if (n > 0)
    {
        printf("% d", n);
        fun(n - 1);
    }
}

int main()
{
    int x = 5;
    fun(x);
    return 0;
}

Output

5 4 3 2 1

Indirect Recursion

In simple words, indirect recursion depends on another function. It contains two functions that depend on one another.

Example

#include<stdio.h>

void funA(int n)
{
    if(n>0)
    {
        printf(" %d",n);
        funB(n-1);
    }
}

void funB(int n)
{
    if(n>0)
    {
        printf("%d",n);
        funA(n-1);
    }
}

int main()
{
    funA(10);
    return 0;
}

Output

 10 9 8 7 6 5 4 3 2 1

Conclusion

This post is a part of my #30DaysChallenge to write a blog post every day on what I learn. All the Best ~ Abhiram Reddy