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…