This is a C++ Program to find the factorial of a number using recursion.
We have to write a C++ program to find out the factorial of a given number using recursion. In mathematics, the factorial of a positive integer n, denoted by n!, is the product of all positive integers less than or equal to n.
For example,
5! = 5 * 4 * 3 * 2 * 1 = 120
The value of 0! is 1, according to the convention for an empty product.
NOTE: Factorial is calculated only for non negative integers.
Case 1. When we take a positive integer
If the input number is 5, then the expected output will be 120.
Case 2. When the number is zero.
If the input number is 0, then the expected output will be 1.
1. In order to find factorial of a number we can either create a separate function or calculate in the main function itself.
2. First of all input the number whose factorial is to be determined (say n).
3. If the number is 0 or 1 simply return 1.
4. If the number is other than 0 or 1 (say n), then recursively call factorial function as: n*factorial(n-1), where factorial() is the function which returns the factorial of a number.
8. This way we calculate n! as n*(n-1)*(n-2)*(n-3)……..1
Here is source code of the C++ Program to find the factorial of a number using recursion. The program is successfully compiled and tested using Codeblocks gnu/gcc compiler on Windows 10. The program output is also shown below.
/*
* C++ Program to find factorial of a number using recursion.
*/
#include<iostream>
using namespace std;
class fact
{
public:
/*
* Function to find the factorial
*/
int factorial(int n)
{
int pro = 1;
if(n == 0 || n == 1)
{
return 1;
}
return n * factorial(n-1);
}
};
/*
* Main function
*/
int main()
{
fact f;
int n;
cout<<"Enter the number whose factorial is to be calculated\t";
cin>>n;
cout<<"\nFactorial of "<<n<<" is = "<<f.factorial(n);
return 0;
}
1. Here in this program we have created a function called factorial which takes in the number whose factorial is to be determined.
2. We will recursively call the function factorial till n keeps on decreasing to become 1.
3. Since at every recursion we are passing factorial(n-1) after some time this n-1 will become equivalent to 1 which can lead to a terminating case where if n is either 0 or 1, we return 1.
So this way we calculate factorial recursively as n * factorial(n – 1).
1. Enter the number whose factorial is to be calculated 5 Factorial of 5 is = 120 2. Enter the number whose factorial is to be calculated 0 Factorial of 0 is = 1
Sanfoundry Global Education & Learning Series – 1000 C++ Programs.
- Practice Computer Science MCQs
- Check C++ Books
- Practice Programming MCQs
- Check Computer Science Books
- Apply for Computer Science Internship