C++ Program to Calculate the Factorial of a Number Using Recursion

1. Introduction

Factorial is a fundamental concept in mathematics, denoted as n! (read as "n factorial"). It is the product of all positive integers from 1 to n. For instance, the factorial of 5 (5!) is 5 x 4 x 3 x 2 x 1 = 120. The factorial function grows rapidly, meaning factorials of even modestly large numbers are enormous. In this blog post, we will develop a C++ program that computes the factorial of a given number using recursion.

2. Program Overview

Recursion is a technique in programming where a function calls itself. For computing factorials, recursion proves useful. The factorial of 0 is 1, and the factorial of any positive number n is n multiplied by the factorial of n-1. We can express this as:

0! = 1 
n! = n x (n-1)!

Our program will:

1. Prompt the user to enter a number.

2. Invoke a recursive function to compute the factorial.

3. Display the result.

3. Code Program

#include <iostream>
using namespace std;

// Recursive function to calculate factorial of a number
long long factorial(int n) {
    // Base case: factorial of 0 or 1 is 1
    if (n <= 1)
        return 1;
    // Recursive case: n! = n x (n-1)!
    else
        return n * factorial(n - 1);
}

int main() {
    int num;

    // Prompt user for input
    cout << "Enter a positive integer: ";
    cin >> num;

    // Display the result
    cout << "Factorial of " << num << " = " << factorial(num);

    return 0;  // Indicate successful program termination
}

Output:

Enter a positive integer: 5
Factorial of 5 = 120

4. Step By Step Explanation

1. Headers and Namespace: We start by including the iostream library, essential for input-output operations, and declare the use of the standard namespace.

#include <iostream>
using namespace std;

2. Recursive Factorial Function: The function factorial calculates the factorial of an integer n. It has a base case for n values of 0 or 1, returning 1. For other values, it multiplies n with the factorial of n-1.

// Recursive function to calculate factorial of a number
long long factorial(int n) {
    // Base case: factorial of 0 or 1 is 1
    if (n <= 1)
        return 1;
    // Recursive case: n! = n x (n-1)!
    else
        return n * factorial(n - 1);
}

3. Main Function: This is where the program begins its execution. We prompt the user for an integer input, compute the factorial using the recursive function, and then display the result.

int main() {

4. User Input: We use cout to prompt the user and cin to receive their input.

    // Prompt user for input
    cout << "Enter a positive integer: ";
    cin >> num;

5. Factorial Calculation: We call the recursive function factorial to compute the value.

    // Display the result
    cout << "Factorial of " << num << " = " << factorial(num);

6. Program Termination: The program concludes its execution with a return value of 0.

    return 0;  // Indicate successful program termination

Comments