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.**

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

**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.

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.**