Factorial of a non-negative integer, is multiplication of all integers smaller than or equal to n. In this article, we will learn how to write a program for the factorial of a number in Java.
Formulae for Factorial
n! = n * (n-1) * (n-2) * (n-3) * ........ * 1
Example of Factorial in Java
6! == 6*5*4*3*2*1 = 720.
5! == 5*4*3*2*1 = 120
4! == 4*3*2*1 = 24
Methods to Find Factorial of a Number
1. Iterative Solution for Factorial in Java
Below is the implementation of the above method:
// Java program to find factorial // of given number // Driver Class class Test {
// Method to find factorial
// of given number
static int factorial( int n)
{
int res = 1 , i;
for (i = 2 ; i <= n; i++)
res *= i;
return res;
}
// main method
public static void main(String[] args)
{
int num = 5 ;
System.out.println( "Factorial of " + num + " is "
+ factorial( 5 ));
}
} |
Factorial of 5 is 120
The complexity of the above method:
Time Complexity: O(n)
Auxiliary Space: O(1)
2. Factorial in Java Using Recursive Method
Below is the implementation of the above method:
// Java program to find factorial // of given number // Driver Class class Test {
// method to find factorial
// of given number
static int factorial( int n)
{
if (n == 0 )
return 1 ;
return n * factorial(n - 1 );
}
// main method
public static void main(String[] args)
{
int num = 5 ;
System.out.println( "Factorial of " + num + " is "
+ factorial( 5 ));
}
} |
Factorial of 5 is 120
The complexity of the above method:
Time Complexity: O(n)
Auxiliary Space: O(n)
3. One-line Solution (Using the Ternary operator)
Below is the implementation of the above method:
// Java program to find factorial // of given number // Driver Class class Factorial {
// function to find factorial
int factorial( int n)
{
// single line to find factorial
return (n == 1 || n == 0 ) ? 1
: n * factorial(n - 1 );
}
// main function
public static void main(String args[])
{
Factorial obj = new Factorial();
int num = 5 ;
System.out.println( "Factorial of " + num + " is "
+ obj.factorial(num));
}
} |
Factorial of 5 is 120
The complexity of the above method:
Time Complexity: O(n)
Auxiliary Space: O(n)
The above solutions cause overflow for small numbers. Please refer factorial of large numbers for a solution that works for large numbers. Please refer complete article on the Program for factorial of a number for more details!