Add FactorialCalculatorImpl
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
package ru.ilug.c7_factorial_calculator;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class FactorialCalculatorImpl implements FactorialCalculator {
|
||||
|
||||
private final Map<Integer, Integer> cache = new ConcurrentHashMap<>();
|
||||
|
||||
@Override
|
||||
public int calculate(int num) {
|
||||
if (num <= 1) {
|
||||
return 1;
|
||||
}
|
||||
return cache.computeIfAbsent(num, n -> calculate(n - 1) * n);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
public class MainTest {
|
||||
|
||||
public static void main(String[] args) {
|
||||
FactorialCalculator factorialCalculator = null;
|
||||
FactorialCalculator factorialCalculator = new FactorialCalculatorImpl();
|
||||
|
||||
log.info("Factorial 3 = {}", factorialCalculator.calculate(3));
|
||||
log.info("Factorial 4 = {}", factorialCalculator.calculate(4));
|
||||
|
||||
Reference in New Issue
Block a user