diff --git a/src/main/java/io/zipcoder/Problem2.java b/src/main/java/io/zipcoder/Problem2.java index e0af6a0..7499152 100644 --- a/src/main/java/io/zipcoder/Problem2.java +++ b/src/main/java/io/zipcoder/Problem2.java @@ -1,4 +1,48 @@ package io.zipcoder; +import java.util.ArrayList; + public class Problem2 { + ArrayList lisOfIntegers = new ArrayList(); + StringBuilder numberSequence = new StringBuilder(); + + public String fibonacciIteration(int number){ + + int[] fibonacciSeries = new int[number]; + fibonacciSeries[0] = 0; + fibonacciSeries[1] = 1; + numberSequence.append(fibonacciSeries[0]); + //numberSequence.append(", "+ fibonacciSeries[1]); + + for (int i = 2; number > fibonacciSeries[i - 1]; i++){ + fibonacciSeries[i] = fibonacciSeries[i - 1] + fibonacciSeries [i - 2]; + numberSequence.append(", " + fibonacciSeries[i - 1]); + + } + + return numberSequence.toString(); + }//works, but not efficient + + public String fibonacciIterationArrayList(int number){ + //lisOfIntegers.add(0); + //lisOfIntegers.add(1); + for (int x = 0; x < number; x++){ + lisOfIntegers.add(x); + } + numberSequence.append(lisOfIntegers.get(0)); + numberSequence.append(", " + lisOfIntegers.get(1)); + int previousIndex = 0; + int currentIndex = 1; + int fibNumber; + + for (int i = 0; currentIndex < lisOfIntegers.size()- previousIndex ; i++){ + fibNumber = previousIndex + currentIndex; + numberSequence.append(", " + fibNumber); + previousIndex = currentIndex; + currentIndex = fibNumber; + + } + return numberSequence.toString(); + } + } diff --git a/src/test/java/io/zipcoder/Problem2Test.java b/src/test/java/io/zipcoder/Problem2Test.java index fa9ffa5..4cccb0e 100644 --- a/src/test/java/io/zipcoder/Problem2Test.java +++ b/src/test/java/io/zipcoder/Problem2Test.java @@ -1,4 +1,32 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + public class Problem2Test { + + private Problem2 problem2; + private int number; + + @Before + public void setUp() { + number = 150; + problem2 = new Problem2(); + + } + @Test + public void fibonacciIterationTest(){ + String expected = "0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144"; + String actual = problem2.fibonacciIteration(number); + Assert.assertEquals(expected, actual); + } + + @Test + public void fibItArrayListTest(){ + String expected = "0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144"; + String actual = problem2.fibonacciIterationArrayList(number); + Assert.assertEquals(expected, actual); + + } }