In this tutorial, you will learn how to write C++ programs to find factorial of a given number using loop statements, or recursion technique.
C++ Factorial Program
In C++, you can find the factorial of a given number using looping statements or recursion techniques.
Following picture has the formula to calculate the factorial of a number. And also factorial examples for numbers 5 and 7.
1. Factorial using While loop
In this example, we shall make use of C++ While Loop, to find the factorial of a given number.
Algorithm
We shall implement the following factorial algorithm with while loop.
- Start.
- Read number to a variable n. [We have to find factorial for this number.]
- Initialize variable factorial with
1
. - Initialize loop control variable i with
1
. - Check if i is less than or equal to n. If the condition is false, go to step 8.
- Multiply factorial with i.
- Increment i. Go to step 5.
- Print factorial.
- Stop.
C++ Program
#include <iostream>
using namespace std;
int main() {
int n = 5;
int factorial = 1;
int i = 1;
while (i <= n) {
factorial *= i;
i++;
}
cout << factorial;
}
Run the above C++ program, and you shall get the following output.
120
2. Factorial using For loop
In this example, we shall use C++ For Loop to find the factorial of a given number. The algorithm would be same as that of the one used in above example using while loop.
C++ Program
#include <iostream>
using namespace std;
int main() {
int n = 5;
int factorial = 1;
for (int i = 1; i <= n; i++)
factorial *= i;
cout << factorial;
}
Run the above program, and you shall get the following output for n=5
.
5! = 120
3. Factorial using Recursion
Finding Factorial of a number is a classic example for recursion technique in any programming language.
In this example, we shall write a recursion function that helps us to find the factorial of a number.
C++ Program
#include <iostream>
using namespace std;
int factorial(int n);
int main() {
cout << factorial(4) << endl;
cout << factorial(6) << endl;
cout << factorial(5) << endl;
cout << factorial(0) << endl;
}
int factorial(int n) {
if (n==0)
return 1;
else
return n * factorial(n - 1);
}
Following is the output to the above C++ program.
Output
24
720
120
1
4. Factorial using Ternary Operator
When using recursion technique, instead of if else as in above example, you can also use C++ Ternary Operator.
In this example, we shall use recursion technique with ternary operator to make the code concise.
C++ Program
#include <iostream>
using namespace std;
int factorial(int n);
int main() {
cout << factorial(4) << endl;
}
int factorial(int n) {
return (n==0)? 1: n * factorial(n - 1);
}
Run the program to find factorial of 5
. You can use the factorial()
, from the above program, function in your program and call it, to find the factorial of any given n
.
Output
24
Conclusion
In this C++ Tutorial, we learned how to write C++ programs to find the factorial of a given number using loop statements and recursion technique.