C++ program to Find Factorial of a Number Using Recursion

Here is a C++ program to find factorial of a number using recursion. In this C++ program, we will find factorial of a number using recursion.

The factorial of a integer N, denoted by N! is the product of all positive integers less than or equal to n.
N! = 1 x 2 x 3 x 4....x (N-2) x (N-1) x N
For Example :
6! = 6 * 5 * 4 * 3 * 2 * 1 = 720.
0! = 1
1! = 1

NOTE : Factorial does not exist for negative numbers and factorial of 0 is 1.

The expression to calculate factorial obeys recursive sub-structure property, hence we can use use recursion to calculate factorial.

Let factorial(N) is a function to calculate the value of N!. To find factorial(N) we can first calculate factorial(N-1) then multiply it with N.

N! = 1 x 2 x 3 x 4....x (N-2) x (N-1) x N
N! = (N-1)! x N
factorial(N) = factorial(N-1) x N

Function factorial(N) reduces the problem of finding N! into sub-problem of finding (N-1)! first and then multiplying it with N to get N!. It keeps on reducing the domain of the problem until N becomes zero.


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

#include <iostream>
using namespace std;
  
int getFactorial(int N);
 
int main(){
    int N;
    cout << "Enter a Number\n";
    cin >> N;
  
    cout << "Factorial of " << N << " = " << 
        getFactorial(N);
      
    return 0;
}
  
int getFactorial(int N){
    // Recursion Termination condition
    if(N <= 1){
         return 1;
    }
    return N * getFactorial(N - 1);
}
Output
Enter a Number
5
Factorial of 5 = 120

In above program, we are using a recursive function getFactorial(N) to calculate the factorial of N. If N <= 1, then getFactorial function returns 1, (this is the recursion termination condition) otherwise, it recursively calls itself to calculate factorial of N-1 and multiply it with N to get N!.

Inside main function, we first take a number as input from user using cin ans store it in a variable N. Then we call getFactorial function by passing N as parameter to calculate N!. Above c++ program cannot be used to calculate factorial of large numbers because factorial of such numbers exceeds the range of int data type.


Recommended Posts
C++ Program to Find Factorial of a Number
C++ Program to Display Factors of a Number
C++ program to Check Whether a Number can be Split into Sum of Two Prime Numbers
C++ Program to Check for Armstrong Number
C++ Program to Find All Square Roots of a Quadratic Equation
C++ Program to Find Power of a Number
C++ Program to check Whether a Number is Palindrome or Not
C++ Program to Check Prime Number
C++ Program to Find LCM and GCD of Two Numbers
C++ Program to Find Quotient and Remainder
All C++ Programs