C Examples

C Program - Find Factorial of a Number



The factorial of a positive integer is the multiplication of all positive integer less than or equal to that number.

factorial of number n = n! = n(n-1)(n-2)...1

For Example:

5! = 5 × 4 × 3 × 2 × 1 = 120

4! = 4 × 3 × 2 × 1 = 24

Method 1: Using Recursive method

In the example below, a recursive function called factorial() is used to calculate factorial of a number.

#include <stdio.h>

static int factorial(int);

static int factorial(int x) {
  if (x == 0 || x == 1)
    {return 1;}
  else 
    {return x*factorial(x-1);}    
}

int main() {
  printf("10! =  %i\n", factorial(10));
  printf("6! =  %i\n", factorial(6));
}

The above code will give the following output:

10! =  3628800
6! =  720

Method 2: Using Iterative method

The factorial of a number can also be calculated using iterative method.

#include <stdio.h>

static int factorial(int);

static int factorial(int x) {
  int finalnum = 1;
  for(int i = x; i > 0; i--) {
    finalnum = finalnum * i;
  }
  return finalnum;  
}

int main(){
  printf("10! =  %i\n", factorial(10));
  printf("6! =  %i\n", factorial(6));
}

The above code will give the following output:

10! =  3628800
6! =  720

Method 3: Using Ternary Operator

In the example below, the factorial of a number is calculated using ternary operator.

#include <stdio.h>

static int factorial(int);

static int factorial(int x) {
  int y = (x == 0 || x == 1)? 1 : x*factorial(x-1);
  return y;  
}

int main(){
  printf("10! =  %i\n", factorial(10));
  printf("6! =  %i\n", factorial(6));
}

The above code will give the following output:

10! =  3628800
6! =  720