# C++ program to Calculate Factorial of a Number Using Recursion

Example to find 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:

This program takes a positive integer from user and calculates the factorial of that number. Suppose, user enters 6 then,

```Factorial will be equal to 1*2*3*4*5*6 = 720
```

You'll learn to find the factorial of a number using a recursive function in this example.

Visit this page to learn, how you can use loops to calculate factorial.

## Example: Calculate Factorial Using Recursion

``````#include<iostream>
using namespace std;

int factorial(int n);

int main() {

int n;

cout << "Enter a positive integer: ";
cin >> n;

cout << "Factorial of " << n << " = " << factorial(n);

return 0;
}

int factorial(int n) {
if(n > 1)
return n * factorial(n - 1);
else
return 1;
}
``````

Output

```Enter an positive integer: 6
Factorial of 6 = 720```

In the above program, suppose the user inputs a number 6. The number is passed to the `factorial()` function.

In this function, 6 is multiplied to the factorial of (6 - 1 = 5). For this, the number 5 is passed again to the `factorial()` function.

Likewise in the next iteration, 5 is multiplied to the factorial of (5 - 1 = 4). And, 4 is passed to the `factorial()` function.

This continues until the value reaches 1 and the function returns 1.

Now, each function returns the value back to compute `1 * 2 * 3 * 4 * 5 * 6 = 720`, which is returned to the `main()` function.

Note: This program does not work for numbers greater than 12. This is because the factorials of these numbers is very large, and are thus beyond the range of values that can be stored in an `int` type.

You can use `unsigned long` as the return type for the `factorial()` function, but it still won't be enough to get the factorial of most numbers.