From b071a7429240e2ee79d4e8a9776b69976a89ea52 Mon Sep 17 00:00:00 2001 From: Lawrence Wu Date: Sun, 15 Apr 2018 14:53:48 -0400 Subject: [PATCH] done --- src/main/java/io/zipcoder/Problem2.java | 53 +++++++++++++++++++++ src/test/java/io/zipcoder/Problem2Test.java | 35 ++++++++++++++ 2 files changed, 88 insertions(+) diff --git a/src/main/java/io/zipcoder/Problem2.java b/src/main/java/io/zipcoder/Problem2.java index e0af6a0..6b5d73e 100644 --- a/src/main/java/io/zipcoder/Problem2.java +++ b/src/main/java/io/zipcoder/Problem2.java @@ -1,4 +1,57 @@ package io.zipcoder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + public class Problem2 { + + String sequence = ""; + ArrayList fibbonaciS = new ArrayList(); + static List fibList; + + public Problem2(){ + fibbonaciS.add(0); + fibbonaciS.add(1); + } + + public String fibbonaciIteration(int n){ + String sequence = ""; + int endNumber = 1; + + while(endNumber < n){ + int twoBeforeEnd = fibbonaciS.get(fibbonaciS.size() - 2); + int oneBeforeEnd = fibbonaciS.get(fibbonaciS.size() - 1); + endNumber = twoBeforeEnd + oneBeforeEnd; + fibbonaciS.add(endNumber); + } + for(int j = 0; j < fibbonaciS.size()-1; j++){ + sequence += fibbonaciS.get(j) + ", "; + } + return sequence.substring(0, sequence.length()-2); + } + //currentIndex = (CurrentIndex - 1) + (currentIndex - 2) + + public String fibRecursion(int n, List fibList){ + if(fibList.size() == 0){ + fibList.add(0); + fibList.add(1); + } + int endNum = fibList.get(fibList.size()-1) + fibList.get(fibList.size()-2); + if (endNum > n){ + String sequence1 = ""; + for (int i = 0; i < fibList.size();i++) { + + sequence1 += fibList.get(i) + ", "; + } + return sequence1.substring(0, sequence1.length()-2); + + } + else{ + fibList.add(endNum); + return fibRecursion(n, fibList); + } + + + } } diff --git a/src/test/java/io/zipcoder/Problem2Test.java b/src/test/java/io/zipcoder/Problem2Test.java index fa9ffa5..0c0dacc 100644 --- a/src/test/java/io/zipcoder/Problem2Test.java +++ b/src/test/java/io/zipcoder/Problem2Test.java @@ -1,4 +1,39 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + public class Problem2Test { + + Problem2 test; + + @Before + public void setUp(){ + test = new Problem2(); + } + + @Test + public void fibbonaciTest(){ + String fibbonaci = "0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144"; + String actual = test.fibbonaciIteration(150); + + Assert.assertEquals(fibbonaci, actual); + } + @Test + public void fibbonaciTest2(){ + String fib = "0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393"; + String actual = test.fibbonaciIteration(150000); + Assert.assertEquals(fib, actual); + } + @Test + public void fibRecursionTest(){ + String fibbonaci = "0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144"; + List fibList = new ArrayList(); + String actual = test.fibRecursion(150, fibList); + Assert.assertEquals(fibbonaci, actual); + } }