Java Program for factorial of a number
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
// 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
// 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
// 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!
Contact Us