Iterative Solution
Factorial can also be calculated iteratively as recursion can be costly for large numbers. Here we have shown the iterative approach using both for and while loops.
1. Using For loop
Below is the C++ program to find the factorial of a number using for loop:
C++
// C++ program for factorial // of a number #include <iostream> using namespace std; // Function to find factorial of // given number unsigned int factorial(unsigned int n) { int res = 1, i; for (i = 2; i <= n; i++) res *= i; return res; } // Driver code int main() { int num = 5; cout << "Factorial of " << num << " is " << factorial(num) << endl; return 0; } |
Factorial of 5 is 120
The complexity of the above method
Time complexity: O(n)
Auxiliary Space: O(1)
2. Using While loop
Below is the C++ program to find the factorial of a number using a while loop:
C++
// C++ program for factorial // of a number #include <iostream> using namespace std; // Function to find factorial of given // number using while loop unsigned int factorial(unsigned int n) { if (n == 0) return 1; int i = n, fact = 1; while (n / i != n) { fact = fact * i; i--; } return fact; } // Driver code int main() { int num = 5; cout << "Factorial of " << num << " is " << factorial(num) << endl; return 0; } |
Factorial of 5 is 120
The complexity of the above method
Time complexity: O(n)
Auxiliary Space: O(1)
C++ Program To Find Factorial Of A Number
The Factorial of a non-negative integer is the multiplication of all integers smaller than or equal to n. For example, the factorial of 6 is 6*5*4*3*2*1 which is 720.