C++ Program to Find Factorial (Using if-else statement)

by | Jan 20, 2023 | C++, C++ Programs

Introduction

In this program, you will learn to calculate the factorial of a number entered by the user.

The factorial of a positive integer ‘x’ is 1*2*3*4*……..*x.

For example, Factorial of 5 is (! is the symbol for factorial):

5! =5*4*3*2*1=120

Similarly, Factorial of 7 is

7! =7*6*5*4*3*2*1=5040

Factorial of negative numbers don’t exist.

Factorial of 0 and 1 is 1.

What is the use of this program?

It is easy to calculate the factorial up to certain values, but it is difficult to calculate factorial like 100! , 500! etc. A small code written in C++ will make this task quite easy.

To understand this example, you should know about the following C++ programming topics:

1. Data types

2. Operators

3. if-else statement

4. for loop

Program

#include<iostream>
using namespace std;
int main()
{
int n;
cout<<"Enter a positive integer: ";
cin>>n;


int fact=1; // fact to store factorial value


if(n<0) // if 'n' is negative
{
cout<<"Factorial of entered value doesn't exist.";
}
else
{
for( int i=1;i<=n;i++)
{
fact=fact*i;
}
}


cout<<"Factorial of "<<n<<" is "<<fact;
return 0;
}

 

Output

Explanation

In the above program, we have to calculate the factorial of ‘n’.

The user is asked to enter the value of ‘n’.

Now we have three conditions, either ‘n’ is a positive integer or ‘n’ is 0, or ‘n’ is a negative integer. if-else statements are used to check all these conditions.

If the value of ‘n’ is less than 0, then the ‘if’ block will be executed.

Otherwise, the ‘else’ block will be executed.

for (int i=1; i<=n; i++)

‘i’ will start from 1 and iterate until it reaches ‘n’.

‘fact’ variable is initialized with 1. When the value of ‘i’ is 1, the statement

fact=fact*i; will return 1*1=1

Thus, fact=1

‘i’ is incremented, and now its value is 2

fact=fact*i; will return 1*2=2

Thus, fact=2

i’ is incremented, and now its value is 3

fact=fact*i; will return 2*3=6

Thus, fact=6

At the end, when the value of ‘i’ reaches 6, then

fact=fact*i; will return 120*6=720

thus fact=720

now ‘i’ is updated to 7, which will terminate the loop.

 

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.