A classic program in Java is the Factorial Calculator.

###### What is the factorial of a number?

According to the Britannica:

**Factorial**, in mathematics, the product of all positive integers less than or equal to a given positive integer and denoted by that integer and an exclamation point. Thus, factorial seven is written 7! meaning 1 × 2 × 3 × 4 × 5 × 6 × 7. Factorial zero is defined as equal to 1.

In everyday life, we use factorial as the total number of arrangements. It means we can arrange n objects in n! different ways.

###### How is calculated the factorial of a number?

The factorial of a number n is the product of all numbers from 1 to n.

Based on this rule, let’s write the algorithm of the factorial calculator.

**Step 1:** Declare the variable **i**, and initialize it to **1**.

**Step 2:** Declare the variable **result**, which will store the factorial, and initialize it to **1**;

**Step 3:** Read the variable **n**.

**Step 4:** The result is multiplied with **i**, and the product is stored in the variable** result**.

**Step 5:** Repeat step 4, for each **i**, from **1** to **n**.

The next step is to implement this algorithm in Java.

###### The factorial program in Java

Each program in Java is within a class. We will implement the calculation part inside a method called calculateFactorial.

static void calculateFactorial(int n)

Let’s build the loop for, which will calculate the product of each number, from **1** to **n**.

for(i = 1; i <= n; i++){ fact = fact * i; }

The complete code of this example in Java is:

public class FactorialProgram { static void calculateFactorial(int n) { int i; int fact = 1; for(i = 1; i <= n; i++){ fact = fact * i; } System.out.println("Factorial of "+n+" is: "+fact); } public static void main(String[] args) { calculateFactorial(5); } }

In** Console**:

Factorial of 5 is: 120

###### a recursive Version

The nature of the algorithm is recursive: the calculations for the factorial of **n** are based on the factorial of **(n-1)**. Let’s try to implement the recursive version of the factorial program.

The base condition is:

if (n == 0)

This means the recursion will stop when **n** is equal to zero. Otherwise, the method calls itself, but with another parameter, which will be **(n-1)**.

factorial(n-1)

The code of the recursive version of the factorial program in Java is this one:

class FactorialRecursiveProgram{ static int factorial(int n){ if (n == 0) return 1; else return(n * factorial(n-1)); } public static void main(String args[]){ int fact=1; int number=4; fact = factorial(number); System.out.println("Factorial of "+number+" is: "+fact); } }

In **Console**:

Factorial of 4 is: 24

Hopefully, this will help you understand this classic problem, solved in both iterative and recursive ways.

**>>Click here for more Code in Java solutions…**