codescracker
c++

C++ Program to Find Factorial of a Number



« Previous Program Next Program »


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

How to Find Factorial ?

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

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

For example, 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 Factorial of a Number in C++

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

Using for Loop

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

// C++ Program to Find Factorial of a Number
// ----codescracker.com----

#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 build and run under Code::Blocks IDE. Here is its sample run:

C++ program find factorial of number

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

find factorial of number c++

The dry run of above program with user input 5 goes like:

Using while Loop

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

// Find Factorial of a Number using while Loop
// ----codescracker.com----

#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 of previous program.

Using user defined Function

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 factorial of the number.

// Find Factorial using User-defined Function
// ----codescracker.com----

#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

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

// Find Factorial using Call by Reference
// ----codescracker.com----

#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++

Same Program in Other Languages


« Previous Program Next Program »