Recursion is the process which comes into existence when a function calls a copy of itself to work on a smaller problem. Any function which calls itself is called recursive function, and such function calls are called recursive calls.
Recursion cannot be applied to all the problem, but it is more useful for the tasks that can be defined in terms of similar subtasks. For Example, recursion may be applied to sorting, searching, and traversal problems.
How recursion works?
void recurse()
{
... .. ...
recurse();
... .. ...
}
int main()
{
... .. ...
recurse();
... .. ...
}
Example
#include<conio.h>
int sum(int n);
int main() {
int number, result;
printf("Enter a positive integer: ");
scanf("%d", &number);
result = sum(number);
printf("sum = %d", result);
return 0;
getch();
}
int sum(int n) {
if (n != 0)
// sum() function calls itself
return n + sum(n-1);
else
return n;
}
Initially, the sum()
is called from the main()
function with number passed as an argument.
Suppose, the value of n inside sum()
is 3 initially. During the next function call, 2 is passed to the sum()
function. This process continues until n is equal to 0.
When n is equal to 0, the if
condition fails and the else
part is executed returning the sum of integers ultimately to the main()
function.
Example
#include<stdio.h>
#include<conio.h>
int fact (int);
int main()
{
int n,f;
printf("Enter the number:");
scanf("%d",&n);
f = fact(n);
printf("factorial = %d",f);
}
int fact(int n)
{
if (n==0)
{
return 0;
}
else if ( n == 1)
{
return 1;
}
else
{
return n*fact(n-1);
}
}
No comments:
Post a Comment