What is the Factorial of a number:
Factorial is the product of all the positive integers between 1 and a given positive integer. The given positive integer itself would also be included in the product. Factorial is represented as n! where n is a given positive integer. Here is an example of how we can find a factorial of a positive integer.
5! = 5 x 4 x 3 x 2 x 1 = 120
6! = 6 x 5 x 4 x 3 x 2 x 1 = 720
Logic building of factorial of a given positive number in C++ :
Before building the logic of factorial it is very important to keep a few things in mind:
1- A factorial of negative numbers doesn’t exist.
2- A factorial of 0 is always 1.
So the first thing we will check while writing the factorial code for a given number is that the entered number should be a positive integer, if the integer is 0, then we simply return 1 because as mentioned above that the factorial of 0 is always 1. and if the entered integer is a positive integer greater then 0 we will keep on multiplying all the number greater then and equal to 1 and less then and equal to the given number.
Below is the code and code explanation for factorial in iterative and recursive approaches:
Iterative Approach:
#include<iostream> using namespace std; int fact(int num){ // Defining a function called fact with a single parameter num int result = 1; if(num < 0 || num == 0){ // Checking if the number is equal to 0 or less then 0 return 1; // In both the conditions this if statement will return 1 } else{ for(int i = 1; i <= num; i++){ // A for loop starting from 1 upto the given positive integer result = result * i; // The numbers are getting multiplied and get store in the variable result } } return result; // Returning the result } int main(){ cout<<fact(6); // Calling the function with a positive integer 6, and the result will be 720 return 0; }
Recursive Approach:
#include<iostream> using namespace std; int fact(int num){ // Defining a function called fact with a single parameter num if(num == 0 || num < 0){ // Checking if the number is equal to 0 or less then 0 return 1; // In both the conditions this if statement will return 1 } else{ return num * fact(num - 1); // recursively calling the function fact(int num), till it gets the factorial } } int main(){ cout<<"Enter a positive integer you want to to find the factorial of: "<<endl; // Asking user to enter an integer int number; // Defining a variable called number to store the user enterd integer cin>>number; // Storing the integer in the variable called number cout<<fact(number)<<endl; // Calling the function fact(number) return 0; }