Java Program to Find the Factorial of a Number Using Recursion

Tutorialsrack 06/11/2021 Java

In this Java program, you’ll learn how to find the factorial of a number using a recursion function. In this program, we used the following Java basics such as if...else conditions, and java recursion methods.

What is a Factorial Number?

In mathematics, the factorial of a positive integer n, denoted by n!, is the product of all positive integers less than or equal to n:


The factorial, symbolized by an exclamation mark (!), is a quantity defined for all integers greater than or equal to 0.

For example,



The value of 0! is 1.

Here is the code of the program to print factorial of a number using Recursion:

Example - Java Program to Find the Factorial of a Number Using Recursion
//Java Program to Find Factorial of a Number Using Recursion

import java.util.Scanner;

public class JavaPrograms {

	public static void main(String[] args) {
		int number;

		// create an object of Scanner class
		Scanner sc = new Scanner(System.in);

		// ask users to enter numbers
		System.out.println("Enter a number: ");
		number = sc.nextInt();
		long factorial = factorial(number);
		System.out.println("Factorial of " + number + " = " + factorial);

	public static long factorial(int num) {
		if (num >= 1)
			return num * factorial(num - 1);
			return 1;


Enter a number: 


Factorial of 5 = 120

Working of Program

  • First, we take the input from the user and the number whose sum is to be found is stored in a variable number.
  • Initially, the factorial() is a recursive function that is called from the main() function and we take 5 as input and pass it as an argument.
  • Since 6 is greater than or equal to 1, 5 is multiplied to the result of factorial() where 4 (num -1) is passed. Since it is called from the same function, it is known as a recursive call.
  • In each recursive call, the value of the argument num is decreased by 1 until num reaches less than 1.
  • When the value of num is less than 1, there is no recursive call.
  • And each recursive calls returns giving us:
  • 5 * 4 * 3 * 2 * 1 * 1 (for 0) = 120

Related Posts


Recent Posts