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.

Did you find this article helpful?