Skip to main content

C Program to Find Factorial of a Number Using Recursion

C Program to Find Factorial of a Number Using Recursion

Example to find factorial of a non-negative integer (entered by the user) using recursion.
Factorial of a positive integer
To understand this example, you should have the knowledge of following C programming topics:
The factorial of a positive number n is given by:
factorial of n (n!) = 1*2*3*4....n
The factorial of a negative number doesn't exist. And the factorial of 0 is 1.
You will learn to find the factorial of a number using recursion in this example. Visit this page to learn, how you can find the factorial of a number using loop.

Example: Factorial of a Number Using Recursion

#include <stdio.h>
long int multiplyNumbers(int n);

int main()
{
    int n;
    printf("Enter a positive integer: ");
    scanf("%d", &n);
    printf("Factorial of %d = %ld", n, multiplyNumbers(n));
    return 0;
}
long int multiplyNumbers(int n)
{
    if (n >= 1)
        return n*multiplyNumbers(n-1);
    else
        return 1;
}
Output
Enter a positive integer: 6
Factorial of 6 = 720
Suppose the user entered 6.
Initially, the multiplyNumbers() is called from the main() function with 6 passed as an argument.
Then, 5 is passed to the multiplyNumbers() function from the same function (recursive call). In each recursive call, the value of argument n is decreased by 1.
When the value of n is less than 1, there is no recursive call.

Comments

Popular posts from this blog

C Program to Find all Roots of a Quadratic Equation

C Program to Find all Roots of a Quadratic Equation This program accepts coefficients of a quadratic equation from the user and displays the roots (both real and complex roots depending upon the discriminant ).   To understand this example, you should have the knowledge of following C programming topics: C Programming Operators C if...else Statement The standard form of a quadratic equation is: ax 2 + bx + c = 0, where a, b and c are real numbers and a ≠ 0 The term b 2 -4ac is known as the discriminant of a quadratic equation. The discriminant tells the nature of the roots. If discriminant is greater than 0, the roots are real and different. If discriminant is equal to 0, the roots are real and equal. If discriminant is less than 0, the roots are complex and different. Example: Program to Find Roots of a Quadratic Equation #include <stdio.h> #include <math.h> int main () ...

C Program to Demonstrate the Working of Keyword long

C Program to Demonstrate the Working of Keyword long The long is a size modifier, indicated by keyword long, that may increase the size of a variable during declaration. This program will demonstrate the working of long keyword.   To understand this example, you should have the knowledge of following C programming topics: C Programming Data Types C Programming Constants and Variables C Input Output (I/O) Example: Program to Demonstrate the Working of long #include <stdio.h> int main () { int a ; long b ; long long c ; double e ; long double f ; printf ( "Size of int = %ld bytes \n" , sizeof ( a )); printf ( "Size of long = %ld bytes\n" , sizeof ( b )); printf ( "Size of long long = %ld bytes\n" , sizeof ( c )); printf ( "Size of double = %ld bytes\n" , sizeof ( e )); printf ( "Size of long doub...

C "Hello, World!" Program

C "Hello, World!" Program A simple C program to display "Hello, World!" on the screen. Since, it's a very simple program, it is often used to illustrate the syntax of a programming language.   To understand this example, you should have the knowledge of following C programming topics: C Input Output (I/O) Program to Display "Hello, World!" #include <stdio.h> int main () { // printf() displays the string inside quotation printf ( "Hello, World!" ); return 0 ; } Output Hello, World! How "Hello, World!" program works? The #include <stdio.h> is a preprocessor command. This command tells compiler to include the contents of stdio.h (standard input and output) file in the program. The  stdio.h  file contains functions such as scanf() and print() to take input and display output respectively. If you use printf() function ...