C++ program to find the factorial of a number

In this article, you will learn and get code to find and print the factorial of a number entered by the user at run-time in C++. The factorial program is created in the following ways:

How to Determine Factorial

To find the factorial of a number n, here is the formula:

factorial = n*(n-1)*(n-2)*...*3*2*1

For example, the factorial of a number, say 6, is:

6! = 6*5*4*3*2*1
   = 30*12*2
   = 30*24
   = 720

Note: The symbol ! indicates factorial.

Find the factorial of a number in C++ using the for loop

To find the factorial of a number in C++ programming, you have to ask the user to enter the number. Then find and print the factorial of that number using the formula given above.

This program finds and prints the factorial of a number using a for loop. The question is: write a program in C++ that finds the factorial of a given number using a for loop. Here is its answer:

#include<iostream>
using namespace std;
int main()
{
    int num, i, fact=1;
    cout<<"Enter the Number: ";
    cin>>num;
    for(i=num; i>=1; i--)
        fact = fact*i;
    cout<<"\nFactorial = "<<fact;
    cout<<endl;
    return 0;
}

This program was built and runs under the Code::Blocks IDE. Here is its sample run:

C++ program find factorial of number

Now supply any number, say 5, and press the ENTER key to find and print its factorial as shown in the snapshot given below:

find factorial of number c++

The following is the dry run of the above program with user input 5:

In C++, using the while loop, find the factorial of a number

Here is another program to find the factorial of a number, but using the while loop in C++. In the while loop, there is only one part, which is for condition. So we have to put the initialization part before the loop and update parts inside its body.

#include<iostream>
using namespace std;
int main()
{
    int num, i, fact=1;
    cout<<"Enter the Number: ";
    cin>>num;
    i=num;
    while(i>=1)
    {
        fact = fact*i;
        i--;
    }
    cout<<"\nFactorial = "<<fact;
    cout<<endl;
    return 0;
}

This program produces the same output as the previous program.

Using a user-defined function to find the factorial of a number in C++

Now let's create the same-purpose program using a user-defined function named findFact(). This function receives a number as its argument and returns the factorial of the number.

#include<iostream>
using namespace std;
int findFact(int);
int main()
{
    int num, fact;
    cout<<"Enter the Number: ";
    cin>>num;
    fact = findFact(num);
    cout<<"\nFactorial = "<<fact;
    cout<<endl;
    return 0;
}
int findFact(int n)
{
    int i, f=1;
    for(i=n; i>=1; i--)
        f = f*i;
    return f;
}

Here is its sample run with user input, 6:

find factorial using function c++

Using call-by-reference to find the factorial of a number in C++

Now this is the end of this article. This program also calculates factorial, but using the call-by-reference method. That is, the address of the variable fact gets passed as an argument to the findFact() function. So any change to this variable directly affects the original value.

#include<iostream>
using namespace std;
void findFact(int, int *);
int main()
{
    int num, fact=1;
    cout<<"Enter the Number: ";
    cin>>num;
    findFact(num, &fact);
    cout<<"\nFactorial = "<<fact;
    cout<<endl;
    return 0;
}
void findFact(int n, int *f)
{
    int i;
    for(i=n; i>=1; i--)
        *f = (*f)*i;
}

Here is its sample run with user input, 4:

find factorial using call by reference c++

The same program in different languages

C++ Quiz


« Previous Program Next Program »