aboutsummaryrefslogtreecommitdiff
path: root/entries/nritschel/fib-java/src/FibonacciCalculatorImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'entries/nritschel/fib-java/src/FibonacciCalculatorImpl.java')
-rw-r--r--entries/nritschel/fib-java/src/FibonacciCalculatorImpl.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/entries/nritschel/fib-java/src/FibonacciCalculatorImpl.java b/entries/nritschel/fib-java/src/FibonacciCalculatorImpl.java
new file mode 100644
index 0000000..7bb5ee9
--- /dev/null
+++ b/entries/nritschel/fib-java/src/FibonacciCalculatorImpl.java
@@ -0,0 +1,17 @@
+public class FibonacciCalculatorImpl implements FibonacciCalculator {
+ private final FibonacciNumberFactory factory;
+
+ public FibonacciCalculatorImpl(FibonacciNumberFactory factory) {
+ this.factory = factory;
+ }
+
+ @Override
+ public int calculateFibonacci(FibonacciNumber fib) {
+ if (fib.getNumber() <= 2) {
+ return 1;
+ }
+ else {
+ return factory.getFibonacciNumber(fib.getNumber() - 1).calculate(this) + factory.getFibonacciNumber(fib.getNumber() - 2).calculate(this);
+ }
+ }
+}