Java Program to Find Factorial

In this post we’ll see a Java program to find the factorial of a number.

Factorial of a non-negative integer n is product of all positive integers less than or equal to n.

For example – 5! = 5 X 4 X 3 X 2 X 1 = 120

Factorial program in Java

Factorial program in Java can be written as both iterative as well as recursive solution. In this post both of the solutions are given.

Factorial program using iteration

In iterative logic you can start a for loop with the entered number and decrease it by 1 in each iteration. What you need is the multiplication of all the numbers in the loop.

import java.util.Scanner;

public class Factorial {
	public static void main(String[] args) {
		// Input from user
		Scanner input = new Scanner(System.in);
		System.out.println("Enter a number: ");
		int number = input.nextInt();
		int factorial = 1;
		for(int i = number; i >= 1; i--){
			factorial = factorial * i; 
		}
		System.out.println("Factorial of " + number + " is " + factorial); 
	}
}

Output

Enter a number: 
5
Factorial of 5 is 120

Factorial program in Java using recursion

In the recursive logic to write factorial Java program, you need to call the same method recursively passing the (number – 1) as parameter every time until the base case (number = 1) is reached.

import java.util.Scanner;

public class Factorial {
	public static void main(String[] args) {
		// Input from user
		Scanner input = new Scanner(System.in);
		System.out.println("Enter a number: ");
		int number = input.nextInt();
		int factorial = calculateFactorial(number);

		System.out.println("Factorial of " + number + " is " + factorial); 
	}
	
	// Factorial using recursion
	private static int calculateFactorial(int num){
		// base case
		if(num == 1){
			return 1;
		}else{
			return num * calculateFactorial(num - 1);
		}
	}
}

Output

Enter a number: 
8
Factorial of 8 is 40320

Related Posts

That’s all for the topic Java Program to Find Factorial. If something is missing or you have something to share about the topic please write a comment.


You may also like

Leave a Reply

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.