Recursive Function

ஒரு function-னில் இருந்து மற்ற்றொரு function-ஐ call செய்வது வழக்கமான முறை. ஆனால் Recursive Function சற்று வித்தியாசமானவை ஒரு function-னில் இருந்து அதே function-ஐ திரும்ப call செய்துகொண்டால் அவை recursive function என்று அழைக்கபடுகிறது.

Syntax

int rec_function(argument){
  executable statements;
  .....
  .....
// recursive function call
  rec_function(argument);
}

ஒரே மாதிரி இருக்ககூடிய sub-problems-ன் சிக்கலை எளிமையாக்க இது பயன்படுத்தபடுகிறது. example ஒரு menu-வில் பல sub-menu இருக்கலாம் அதே போல் ஒவொரு sub-menu-விழும் இன்னும் பல sub-menu க்கள் இருக்கலாம் இது போன்று தொடர்ந்து கொண்டே இருக்குக் சிக்கலுக்கு எளிமையாக தீர்வு கானவே இது பயன்படுத்தபடுகிறது.

Example

Qn: Find the factorial of a given number

#include<stdio.h>
#include<conio.h>
int factorial(int); 

int main(){
  int p=5,result;
  result=factorial(p);
  printf("Factorial value is", result);
  return 0;
}

int factorial(int n){
  if(n==0){
      return 1;
  }else {
      return (n* factorial(n-1));// recursive function call
  }
}

Explanation

கீழ் கண்டவாறு recursive function வேலை செய்கின்றது.
fact(5); // function call
5*fact(4) //recursive call
5*4*fact(3)
5*4*3*fact(2)
5*4*3*2*fact(1)
5*4*3*2*1*fact(0)
5*4*3*2*1*1 //recursive call stops here

Output:

Factorial value is 120

Comments