From 7d9776e0aaf1f3043962abed10cb37d3d71d4163 Mon Sep 17 00:00:00 2001 From: Vincent Gasbarro Date: Sun, 15 Apr 2018 14:47:46 -0400 Subject: [PATCH] fibby fib fib --- src/main/java/io/zipcoder/Problem2.java | 63 +++++++++++++++++++++ src/test/java/io/zipcoder/Problem2Test.java | 31 ++++++++++ 2 files changed, 94 insertions(+) diff --git a/src/main/java/io/zipcoder/Problem2.java b/src/main/java/io/zipcoder/Problem2.java index e0af6a0..e799cb0 100644 --- a/src/main/java/io/zipcoder/Problem2.java +++ b/src/main/java/io/zipcoder/Problem2.java @@ -1,4 +1,67 @@ package io.zipcoder; +import java.util.ArrayList; +import java.util.List; + public class Problem2 { + + + public String fibIteration(int input) { + + String toReturn = ""; + + ArrayList fibAnswer = new ArrayList(); + fibAnswer.add(0); + fibAnswer.add(1); + + for (int i = 1; i < input; i++) { + if ((fibAnswer.get(fibAnswer.size() - 2) + fibAnswer.get(fibAnswer.size() - 1)) > input) { + break; + } + + int numberToAdd = (fibAnswer.get(fibAnswer.size() - 2) + fibAnswer.get(fibAnswer.size() - 1)); + fibAnswer.add(numberToAdd); + i = numberToAdd; + } + + for (int i = 0; i < fibAnswer.size(); i++) { + toReturn += fibAnswer.get(i); + if (i < fibAnswer.size() - 1) { + toReturn += ", "; + } + } + + return toReturn; + } + + + public String fibRecursion(int input, List fibList) { + + if (fibList.size() == 0) { + fibList.add(0); + fibList.add(1); + } + + int numberToAdd = (fibList.get(fibList.size() - 2) + fibList.get(fibList.size() - 1)); + + + if (numberToAdd > input) { + String toReturn = ""; + for (int i = 0; i < fibList.size(); i++) { + toReturn += fibList.get(i); + if (i < fibList.size() - 1) { + toReturn += ", "; + } + } + return toReturn; + + } else { + fibList.add(numberToAdd); + return fibRecursion(input, fibList); + + + } + } + + } diff --git a/src/test/java/io/zipcoder/Problem2Test.java b/src/test/java/io/zipcoder/Problem2Test.java index fa9ffa5..fb33a93 100644 --- a/src/test/java/io/zipcoder/Problem2Test.java +++ b/src/test/java/io/zipcoder/Problem2Test.java @@ -1,4 +1,35 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; + public class Problem2Test { + + private Problem2 tester; + + @Before + public void setup() { + tester = new Problem2(); + } + + @Test + public void fibIterationTest1() { + int input = 150; + String expected = "0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144"; + String actual = tester.fibIteration(input); + Assert.assertEquals(expected, actual); + } + + @Test + public void fibRecursionTest1() { + int input = 150; + ArrayList testList = new ArrayList(); + String expected = "0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144"; + String actual = tester.fibRecursion(input, testList); + Assert.assertEquals(expected, actual); + } + }