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 class MainTest {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
FactorialCalculator factorialCalculator = null;
|
FactorialCalculator factorialCalculator = new FactorialCalculatorImpl();
|
||||||
|
|
||||||
log.info("Factorial 3 = {}", factorialCalculator.calculate(3));
|
log.info("Factorial 3 = {}", factorialCalculator.calculate(3));
|
||||||
log.info("Factorial 4 = {}", factorialCalculator.calculate(4));
|
log.info("Factorial 4 = {}", factorialCalculator.calculate(4));
|
||||||
|
|||||||
Reference in New Issue
Block a user