void recursion()
{
recursion(); /* function calls itself*/
}
int main()
{
recursion();
return 0;
}
1. Recursion functions are written less number of statements.
2. Recursion is effective where terms are generated successively to compute value.
3. Recursion is useful for branching process. Recursion helps to create short code that would otherwise be impossible.
Recursive function is very useful to solve many mathematical problems like to calculate factorial of a number, generating Fibonacci series, etc.
Following is an example, which calculates factorial for a given number using a recursive function:
#include
int factorial(unsigned int i)
{
if(i <= 1)
{ return 1;
}
return i * factorial(i - 1);
}
int main()
{ int i;
printf(“enter a value for finding factorial value:”);
scanf(“%d”, &i);
printf(“Factorial of %d is %d\n”, i, factorial(i));
return 0;
}
Enter a value for finding factorial value : 5
Factorial of 5 is 120
Following is another example, which generates Fibonacci series for a given number using a recursive function :
#include <stdio.h>
int fibonaci(int i)
{
if(i == 0)
{
return 0;
}
if(i == 1)
{
return 1;
}
return fibonaci(i-1) + fibonaci(i-2);
}
int main()
{
int i,n;
printf(“how many fibonacci's(range) u want:”);
scanf(“%d”, &n);
for (i = 0; i < n; i++)
{
printf(“%d\t%n”, fibonaci(i));
}
return 0;
}
How many fibonacci's (range) u want: 10
0 1 1 2 3 5 8 13 21 34