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.
Also Read: