mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.0 KiB
2.0 KiB
Factorial Master
Instructions
Create an abstract class Factorial
that will serve as the base class for calculating the factorial of a number. This class should have an abstract method calculate
that will be implemented by its child classes.
Implement two child classes:
IterativeFactorial
which implements the factorial calculation using an iterative approach.RecursiveFactorial
which implements the factorial calculation using a recursive approach.
Note: The factorial of 0 is 1, according to the convention
Formula for factorial calculation:
n! = n × (n−1) × (n−2) × … × 1
And an example: 5! = 5 × 4 × 3 × 2 × 1 = 120
Expected Abstract Class
public abstract class Factorial {
public abstract long calculate(int n);
}
public class IterativeFactorial extends Factorial {
@Override
public long calculate(int n) {
// iterative factorial calculation
}
}
public class RecursiveFactorial extends Factorial {
@Override
public long calculate(int n) {
// recursive factorial calculation
}
}
Usage
Here is a possible ExerciseRunner.java
to test your classes:
public class ExerciseRunner {
public static void main(String[] args) {
Factorial iterativeFactorial = new IterativeFactorial();
Factorial recursiveFactorial = new RecursiveFactorial();
// Test iterative factorial
int number = 5;
long iterativeResult = iterativeFactorial.calculate(number);
System.out.println("Iterative Factorial of " + number + " is: " + iterativeResult); // Expected output: 120
// Test recursive factorial
long recursiveResult = recursiveFactorial.calculate(number);
System.out.println("Recursive Factorial of " + number + " is: " + recursiveResult); // Expected output: 120
}
}
Expected Output
$ javac *.java -d build
$ java -cp build ExerciseRunner
Iterative Factorial of 5 is: 120
Recursive Factorial of 5 is: 120
$