C Program to Find Factorial of a Number (Using recursion)

by | Jan 22, 2023 | C, C Programs

Home » C » C Programs » C Program to Find Factorial of a Number (Using recursion)

Introduction

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

The user will enter a particular value, and then through this program, we will compute its factorial.

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 doesn’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. C data types

2. Operators in C

3. Recursion

4. C user-defined functions

Recursion is the process in which a function calls itself.

Program

#include<stdio.h>

int factorial(int x)

{

if(x==0)

{

return 1;

}

else

{

return x*factorial(x-1); // recursion

}

}

int main()

{

int a;

printf("Enter an integer:\n");

scanf("%d",&a);




if (a>=0) // condition to check either a is a positive integer or 0

{

int fact=factorial(a);

printf("Factorial of %d is %d",a,fact);

}

else // when ‘a’ is a negative number

{

printf("Factorial does not exist");

}

return 0;




}

 

Output

Explanation

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

If ‘a’ is a positive number only then we will proceed with the ‘factorial’ function else print ‘a’ is a negative number.

In the definition of the ‘factorial’ function, we have used the recursion process in the ‘else’ statement.

return x*factorial(x-1);

The above statement uses recursion and calculates the factorial of the value entered by the user.

 

Author

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.

Author