#include
#include
void main()
{
int n,i,fact=1;
clrscr();
printf(“enter the number
”);
scanf(“%d”,&n);
for(i=n;i>=1;i--)
{
fact=fact*i;
}
printf(“the factorial of given number is %d”,fact);
getch();
}
Output:
enter the number
5
the factorial of given number is 120
Recursion: A function is called ‘recursive’ if a statement within the body of a function calls the same
function. It is also called ‘circular definition’. Recursion is thus a process of defining something in terms of itself. Program: To calculate the factorial value using recursion.
#include
int fact(int n);
int main() {
int x, i;
printf("Enter a value for x:
");
scanf("%d", &x);
i = fact(x);
printf("
Factorial of %d is %d", x, i);
return 0;
} int fact(int n) {
/* n=0 indicates a terminating condition */
if (n <= 0) {
return (1);
} else {
/* function calling itself */
return (n * fact(n - 1));
/nfact(n-1) is a recursive expression */
}
}
Output:
Enter a value for x:
4
Factorial of 4 is 24
Explanation:
fact(n) = n * fact(n-1)
If n=4
fact(4) = 4 * fact(3) there is a call to fact(3)
fact(3) = 3 * fact(2)
fact(2) = 2 * fact(1)
fact(1) = 1 * fact(0)
fact(0) = 1
fact(1) = 1 * 1 = 1
fact(2) = 2 * 1 = 2
fact(3) = 3 * 2 = 6
Thus fact(4) = 4 * 6 = 24
Terminating condition(n <= 0 here;) is a must for a recursive program. Otherwise the program enters
into an infinite loop.