C Program to Find Factorial of a Number Using Recursion

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

Limited time offer: Get 10 free Adobe Stock images.ADS VIA CARBON

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.


Factorial of a Number Using Recursion

#include 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.