- Write a C++ program to calculate factorial of a number using for loop.
- How to calculate factorial of a number using recursion.

**Factorial** of a positive integer n, denoted by n!, is the product of all positive integers less than or equal to n. Factorial is undefined for negative numbers and factorial of 0 is equal to 1. The n! represents the number of ways to arrange n distinct objects into a sequence.

*N! = N*(N-1)*(N-2)..... 4*3*2*1*## C++ program to find factorial of a number using loop

#include <iostream> using namespace std; int main(){ int N, factorial = 1, i; cout << "Enter a number for factorial calculation\n"; cin >> N; /* * N! = N*(N-1)*(N-2)*(N-3)*.....*3*2*1 */ for(i = 1; i <= N; i++){ factorial = factorial * i; } cout << "Factorial of " << N << " is " << factorial; return 0; }Output

Enter a number for factorial calculation 4 Factorial of 4 is 24

Enter a number for factorial calculation 0 Factorial of 0 is 1

## C++ program to find factorial of a number using recursion

We can use recursion to calculate factorial of a number because factorial calculation obeys recursive sub-structure property. Let getFactorial(N) is a function to calculate and return value of N!. To find getFactorial(N) we can first calculate getFactorial(N-1) then multiply it with N.

N! = 1 x 2 x 3 x 4....x (N-2) x (N-1) x N

N! = (N-1)! x N

**getFactorial(N) = getFactorial(N-1) x N**

Function getFactorial(N) reduces the problem of finding factorial of a number N into sub-problem of finding factorial on N-1. It keeps on reducing the domain of the problem until N becomes zero.

#include <iostream> using namespace std; int getFactorial(int N); int main(){ int N; cout << "Enter a Number\n"; cin >> N; cout << "Factorial of " << N << " = " << getFactorial(N); return 0; } // Recursive function to find factorial of a number int getFactorial(int N){ // Recursion Termination condition if(N <= 1){ return 1; } return N * getFactorial(N - 1); }Output

Enter a Number 7 Factorial of 7 = 5040