Factorial of a non-negative integer, is multiplication of all integers smaller than or equal to n. For example factorial of 6 is 6*5*4*3*2*1 which is 720.

**Recursive : **

`// Java program to find factorial of given number ` `class` `Test ` `{ ` ` ` `// method to find factorial of given number ` ` ` `static` `int` `factorial(` `int` `n) ` ` ` `{ ` ` ` `if` `(n == ` `0` `) ` ` ` `return` `1` `; ` ` ` ` ` `return` `n*factorial(n-` `1` `); ` ` ` `} ` ` ` ` ` `// Driver method ` ` ` `public` `static` `void` `main(String[] args) ` ` ` `{ ` ` ` `int` `num = ` `5` `; ` ` ` `System.out.println(` `"Factorial of "` `+ num + ` `" is "` `+ factorial(` `5` `)); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

**Iterative Solution:**

`// Java program to find factorial of given number ` `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; ` ` ` `} ` ` ` ` ` `// Driver method ` ` ` `public` `static` `void` `main(String[] args) ` ` ` `{ ` ` ` `int` `num = ` `5` `; ` ` ` `System.out.println(` `"Factorial of "` `+ num + ` `" is "` `+ factorial(` `5` `)); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

**One line Solution (Using Ternary operator): **

`// Java program to find factorial ` `// of given number ` `class` `Factorial { ` ` ` ` ` `int` `factorial(` `int` `n) ` ` ` `{ ` ` ` ` ` `// single line to find factorial ` ` ` `return` `(n == ` `1` `|| n == ` `0` `) ? ` `1` `: n * factorial(n - ` `1` `); ` ` ` ` ` `} ` ` ` ` ` ` ` `// Driver Code ` ` ` `public` `static` `void` `main(String args[]) ` ` ` `{ ` ` ` `Factorial obj = ` `new` `Factorial(); ` ` ` `int` `num = ` `5` `; ` ` ` `System.out.println(` `"Factorial of "` `+ num + ` ` ` `" is "` `+ obj.factorial(num)); ` ` ` `} ` `} ` `// This code is contributed by Anshika Goyal. ` |

*chevron_right*

*filter_none*

The above solutions cause overflow for small numbers. Please refer factorial of large number for a solution that works for large numbers.

Please refer complete article on Program for factorial of a number for more details!

## Recommended Posts:

- Find the last digit when factorial of A divides factorial of B
- Java Program to Count trailing zeroes in factorial of a number
- Program for factorial of a number
- C Program for factorial of a number
- Python Program for factorial of a number
- Golang Program to Count Trailing Zeros in Factorial of a Number
- Check if a given number is factorial of any number
- Count trailing zeroes in factorial of a number
- Factorial of a large number
- Find the first natural number whose factorial is divisible by x
- Smallest number with at least n trailing zeroes in factorial
- Smallest number with at least n digits in factorial
- Sum of divisors of factorial of a number
- Find sum of digits in factorial of a number
- Smallest number S such that N is a factor of S factorial or S!
- One line function for factorial of a number
- Find maximum power of a number that divides a factorial
- First digit in factorial of a number
- Number of digits in N factorial to the power N
- Maximum number with same digit factorial product