docs: adding subject and main

This commit is contained in:
amin 2024-06-24 15:50:14 +01:00 committed by zanninso
parent 94b510cdc3
commit bfe7898011
2 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,15 @@
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
}
}

View File

@ -0,0 +1,73 @@
## 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](https://www.chilimath.com/lessons/intermediate-algebra/zero-factorial/)
#### Formula for factorial calculation:
n! = n × (n1) × (n2) ×× 1
And an example:
5! = 5 × 4 × 3 × 2 × 1 = 120
### Expected Abstract Class
```java
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:
```java
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
```shell
$ javac *.java -d build
$ java -cp build ExerciseRunner
Iterative Factorial of 5 is: 120
Recursive Factorial of 5 is: 120
$
```