Recursion in C

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()
{  
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<stdio.h>  
#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() */
}

Post a Comment

Previous Post Next Post