๐ŸŽฏ Overview

Factorial of a number is multiplication of that number by every number below it till 1.

For eg: 4! = 4 x 3 x 2 x 1

Important concepts to be aware of:

  • Get of hold of factorial of 1 as 1, and use that in your logic forward in the program.
  • This problem can be solved using iterative approach, as well as using recursive approach. I attempted both these approaches in the code shared below.

๐ŸŽฏ Solving the problem in Java

Problem Statement: Write a Java program to calculate factorial of a given number.

/**
 * Problem 6: Write a Java program to calculate factorial of a given number.
 */
public class Problem_6 {

  public static void main(String[] args) {

    System.out.println("Enter the number:");
    Scanner sc = new Scanner(System.in);

    int number = sc.nextInt();

    if(number < 0) {
      System.out.println("Factorial cannot be calculated for a negative number");
      System.exit(0);
    }

    System.out.println(String.format("Factorial is %s", calculateFactorialIterative(number)));
    System.out.println(String.format("Factorial is %s", calculateFactorialRecursive(number)));
    System.out.println(String.format("Factorial is %s", calculateFactorialTernary(number)));
  }

  private static int calculateFactorialTernary(int number) {
    return number == 0 ? 1 : number * calculateFactorialTernary(--number);
  }

  private static int calculateFactorialRecursive(int number) {

    if(number == 0) {
      return 1;
    }

    return number * calculateFactorialRecursive(--number);
  }

  private static int calculateFactorialIterative(int number) {
    int factorial = 1;

    for (int i = 2; i <= number; i++) {
      factorial = factorial * i;
    }

    return factorial;
  }
}

Output:

Enter the number:
4
Factorial is 24
Factorial is 24
Factorial is 24

Process finished with exit code 0

๐ŸŽฏ Github

Code shared in this post can be found here.