**Write a C program to find factorial of the given number using recursion.**

**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:**

#include
<stdio.h>

int fact(int n);

int main()

{

int x, i;

printf("Enter a
value for x: \n");

scanf("%d",
&x);

i = fact(x);

printf("\nFactorial
of %d is %d", x, i);

return 0;

}

int fact(int n)

{

if (n <= 0) // n=0 indicates a terminating condition

{

return (1);

}

else

{

/* function calling
itself */

return (n * fact(n -
1)); // n*fact(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.