Add FactorialCalculatorImpl

This commit is contained in:
2026-01-23 13:12:12 +03:00
parent 6e321081ca
commit 14fe940c6b
2 changed files with 19 additions and 1 deletions

View File

@@ -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);
}
}

View File

@@ -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));