Summary: In this programming example, we will learn different ways to calculate the factorial of a number in C++.
Factorial of any positive integer n denoted by n! is the product of all positive integers less than or equal to n.
i.e. n! = n×(n-1)×(n-2)×(n-3)×⋯×3×2×1.
There are different ways to find factorial of a number in C++. Let’s see the example of each of them.
Method 1: Factorial using Loop
#include <iostream>
using namespace std;
int main() {
int n;
unsigned long long factorial= 1;
cout << "Enter a number \n";
cin >> n;
for(int i=n; i>=1; i--){
factorial = factorial*i;
}
cout << "Factorial of " << n << " is " << factorial;
return 0;
}
Output
Enter a number 5 Factorial of 5 is 120In this method, we loop from n to 1 in decreasing order and simultaneously multiply each number with the factorial
variable.
The final value of factorial
is the product of all numbers from n to 1 i.e. factorial of n.
The factorial of a number is always positive and could exceed the range of int
in C++, that’s why we used the unsigned long long
type to store the factorial value.
Method 2: Factorial using Function
#include <iostream>
using namespace std;
unsigned long long findFactorial(int n){
unsigned long long factorial= 1;
for(int i=n; i>=1; i--){
factorial = factorial*i;
}
return factorial;
}
int main() {
int n;
cout << "Enter a number \n";
cin >> n;
cout << "Factorial of " << n << " is " << findFactorial(n);
return 0;
}
Output
Enter a number 6 Factorial of 6 is 720This method is similar to the above discussed method but incorporated using a function.
The function using loop algorithm calculates and returns the factorial of the number n
.
Method 3: Factorial using Recursion
#include <iostream>
using namespace std;
//Recursive Function
unsigned long long factorial(int n){
if(n==0 || n==1)
return 1;
return n*factorial(n-1);
}
int main() {
int n;
cout << "Enter a number \n";
cin >> n;
cout << "Factorial of " << n << " is " << factorial(n);
return 0;
}
Output
Enter a number 7 Factorial of 7 is 5040In this program, factorial(int n)
is a recursive method with a base condition of n==1 || n==0
.
If the base condition is not satisfied then we multiply the value n
with the next recursive call i.e. factorial(n-1)
.
The factorial of n
is returned back to the main
function at the end of the recursion.
In this tutorial, we learned to calculate factorial of a number in C++.