C Program to Find Factorial

C Programming Examples

C String Programs

This C program is used to calculate the factorial value using recursion.



Recursion: A function is called 'recursive' if a statement within the body of a function calls the same function. It is also called 'circular definition'. Recursion is thus a process of defining something in terms of itself.

Program to Calculate the Factorial Value Using Recursion.

Program:

#include <stdio.h>

int fact(int n);    

int main() {
    int x, i;
    printf("Enter a value for x: ");
    scanf("%d", &x);
    i = fact(x);
    printf("
    Factorial of %d is %d", x, i);
    return 0;
}

int fact(int n) {
    //n=0 indicates a terminating condition
    if (n <= 0) {
        return (1);
    } else {
        //function calling itself
        return (n * fact(n - 1));
        //n*fact(n-1) is a recursive expression
    }
}

Program Output:

Enter a value for x:

4

Factorial of 4 is 24

Explanation:

fact(n) = n * fact(n-1)

If n=4

fact(4) = 4 * fact(3) there is a call to fact(3)

fact(3) = 3 * fact(2)

fact(2) = 2 * fact(1)

fact(1) = 1 * fact(0)

fact(0) = 1

fact(1) = 1 * 1 = 1

fact(2) = 2 * 1 = 2

fact(3) = 3 * 2 = 6

Thus fact(4) = 4 * 6 = 24

Terminating condition(n <= 0 here;) is a must for a recursive program. Otherwise, the program enters into an

infinite loop.



Found This Page Useful? Share It!
Get the Latest Tutorials and Updates
Join us on Telegram

Keep W3schools Growing with Your Support!
❤️ Support W3schools