In this example, you will learn to find the factorial of a non-negative integer entered by the user using recursion.

To understand this example, you should have the knowledge of the following C programming topics:

The factorial of a positive number `n` is given by:

```
factorial of n (n!) = 1 * 2 * 3 * 4 *... * n
```

The factorial of a negative number doesn't exist. And the factorial of
`0`

is `1`

.

You will learn to find the factorial of a number using recursion in this example. Visit this page to learn how you can find the factorial of a number using a loop.

```
#include<stdio.h>
long int multiplyNumbers(int n);
int main() {
int n;
printf("Enter a positive integer: ");
scanf("%d",&n);
printf("Factorial of %d = %ld", n, multiplyNumbers(n));
return 0;
}
long int multiplyNumbers(int n) {
if (n>=1)
return n*multiplyNumbers(n-1);
else
return 1;
}
```

**Output **

Enter a positive integer: 6 Factorial of 6 = 720

Suppose the user entered 6.

Initially, `multiplyNumbers()`

is called from
`main()`

with 6 passed as an argument.

Then, 5 is passed to `multiplyNumbers()`

from the same function
(recursive call). In each recursive call, the value of argument
`n` is decreased by 1.

When the value of `n` is less than 1, there is no recursive call and
the factorial is returned ultimately to the `main()`

function.