Recursion in C
- When function is called within the same function, it is known as recursion in C.
- The function which calls the same function, is known as recursive function.
- A function that calls itself, and doesn't perform any task after function call, is know as tail recursion.
- In tail recursion, we generally call the same function with return statement. An example of tail recursion is given below.
{
recursionfunction();//calling self function
}
Example of tail recursion in C
Let's see an example to print factorial number using tail recursion in C language.
#include<conio.h>
int factorial (int n)
{
if ( n < 0)
return -1; /*Wrong value*/
if (n == 0)
return 1; /*Terminating condition*/
return (n * factorial (n -1));
}
void main(){
int fact=0;
clrscr();
fact=factorial(5);
printf("\n factorial of 5 is %d",fact);
getch();
}
Output
factorial of 5 is 120
We can understand the above program of recursive method call by the figure given below:
#include <stdio.h>
int sum(int n);
int main(){
int num,add;
printf("Enter a positive integer:\n");
scanf("%d",&num);
add=sum(num);
printf("sum=%d",add);
}
int sum(int n){
if(n==0)
return n;
else
return n+sum(n-1); /*self call to function sum() */
}