## DEV Community is a community of 698,016 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

# Recursion in C Programming

Alimam Miya
I have not a great Programming Knowledge, I have good Programming Knowledge, with great habit.

In this tutorial, we will study what is recursion in c programming, the structure of the recursion function, the advantages and disadvantages of recursion in c, the types of recursion, and the factorial of a number using recursion.

## Recursion in C Programming

Recursion is a process in which the function calls itself. Recursion is used to solve a problem by dividing it into small parts. Such functions which call themselves are called recursive functions.

## Structure of Recursive Function

return type myFunction(Parameters-list)
{
statement 1;
statement 2;
…
statement N;
myFunction(Arguments-list);
…
other statements;
}

• If we solve a problem through Recursion, then there is no need to call the function again and again. If we call the function 1 time, it keeps calling itself till the end result comes.
• The same problem is easily solved in recursion.

• Recursive programs are slower than normal programs.
• Requires consuming extra memory.

## Types of Recursion in C

### Direct Recursion

Direct recursion is a recursion in which a function calls itself.

return_type MyFunction(parameter-list)
{
statements;
MyFunction(argument-list);
other statements;
}

### Indirect Recursion

In this, one function calls another function which in return calls it itself.

First Function

return_type FunctionOne(parameter-list)
{
statements;
FunctionTwo(argument-list);
other statements;
}

Second Function

return_type FunctionTwo(parameter-list)
{
statements;
FunctionOne(argument-list);
other statements;
}

## Factorial of a Number Using Recursion

#include <stdio.h>
#include <conio.h>
long int fact(int n);
int main()
{
int n;
printf("Enter a positive integer: ");
scanf("%d", &n);
printf("Factorial of %d = %ld", n, fact(n));
return 0;
}
long int fact(int n)
{
if (n >= 1)
return n*fact(n-1);
else
return 1;
}

Output

Enter a positive integer: 4
Factorial of 4 = 24

Originally posted on alimammiya.hashnode.dev

## Discussion (1)

Andrew Clayton

Small tip.

If you put your main() at the bottom, you can loose the fact() prototype.