Trusted answers to developer questions

Tarun Telang

The **factorial** of a non-negative number $n$ (denoted by $n!$) is the product of all the positive integers less than or equal to that number $n$.

Mathematically, it can be represented by the expression:

$n! = n \times (n-1) \times (n-2) \times ... \times 2 \times 1$

Example: The factorial of 6 is $6 \times 5 \times 4 \times 3 \times 2 \times 1 = 720$.

In order to calculate the factorial of a number in Java, use the following methods.

$factorial(n)$ = n × ($factorial(n-1)$)

The recursive program to calculate a factorial is as follows:

class Factorial { public static int factorial(int n) { if (n < 0) throw new IllegalArgumentException("argument should be > 0"); return n == 0 ? 1 : n * factorial(n-1); } public static void main( String args[] ) { System.out.println("0! -> " + factorial(0)); System.out.println("1! -> " + factorial(1)); System.out.println("3! -> " + factorial(3)); System.out.println("5! -> " + factorial(5)); System.out.println("10! -> " + factorial(10)); System.out.println("-1! -> " + factorial(-1)); } }

Java code to calculate factorial of a number recursively

Note that the recursive algorithm factorial calculates $n!$ (where $n$ is a positive integer).

So, if you want to calculate the factorial of `-1`

as in the last example, then this method will throw an exception because the factorial of negative numbers is not defined.

$n! = n \times (n-1) \times (n-2) \times ... \times 2 \times 1$

public class Factorial { public static int factorial(int n) { if (n < 0) throw new IllegalArgumentException("argument should be >0"); int result = 1; for(int i = n; i > 1; i--) { result *= i; } return result; } public static void main(String[] args) { System.out.println("0! -> " + factorial(0)); System.out.println("1! -> " + factorial(1)); System.out.println("3! -> " + factorial(3)); System.out.println("5! -> " + factorial(5)); System.out.println("10! -> " + factorial(10)); System.out.println("-1! -> " + factorial(-1)); } }

Java code to calculate factorial of a number

In the above code, we use a `for`

loop to calculate the factorial of the number which runs from the current number down until `1`

, each number being multiplied with the result.

RELATED TAGS

factorial

java

communitycreator

CONTRIBUTOR

Tarun Telang

RELATED COURSES

View all Courses

Keep Exploring

Related Courses