diff options
| author | mokha <mokha@cisco.com> | 2019-05-05 14:21:38 -0600 |
|---|---|---|
| committer | mokha <mokha@cisco.com> | 2019-05-05 14:21:38 -0600 |
| commit | 15cf738f2befd48355927c63badd4f635e3ea3f4 (patch) | |
| tree | 5d2ccfcd9dcadfe76c83ec5d91ad44d95835a2e8 | |
| parent | 3be9177730c4a7177a9589a04b154bb10f013a61 (diff) | |
switch from iterative to recursive solution
| -rw-r--r-- | assignments/assignment1/src/main/java/ca/mokhan/assignment1/HailstoneSequence.java | 15 | ||||
| -rw-r--r-- | assignments/assignment1/src/test/java/ca/mokhan/assignment1/HailstoneSequenceTest.java | 2 |
2 files changed, 9 insertions, 8 deletions
diff --git a/assignments/assignment1/src/main/java/ca/mokhan/assignment1/HailstoneSequence.java b/assignments/assignment1/src/main/java/ca/mokhan/assignment1/HailstoneSequence.java index a67acfd..b0e3c48 100644 --- a/assignments/assignment1/src/main/java/ca/mokhan/assignment1/HailstoneSequence.java +++ b/assignments/assignment1/src/main/java/ca/mokhan/assignment1/HailstoneSequence.java @@ -4,13 +4,14 @@ import java.util.ArrayList; public class HailstoneSequence { public static ArrayList<Integer> getHailstoneSequence(int n) { - ArrayList<Integer> items = new ArrayList<Integer>(); + return getHailstoneSequence(n, new ArrayList<Integer>()); + } + + public static ArrayList<Integer> getHailstoneSequence(int n, ArrayList<Integer> items) { + items.add(n); - while (n != 1) { - items.add(n); - n = (n % 2 == 0) ? n / 2 : (n * 3) + 1; - } - items.add(1); - return items; + if (n == 1) return items; + else if (n % 2 == 0) return getHailstoneSequence(n / 2, items); + else return getHailstoneSequence((n * 3) + 1, items); } } diff --git a/assignments/assignment1/src/test/java/ca/mokhan/assignment1/HailstoneSequenceTest.java b/assignments/assignment1/src/test/java/ca/mokhan/assignment1/HailstoneSequenceTest.java index c816f68..6dc1fea 100644 --- a/assignments/assignment1/src/test/java/ca/mokhan/assignment1/HailstoneSequenceTest.java +++ b/assignments/assignment1/src/test/java/ca/mokhan/assignment1/HailstoneSequenceTest.java @@ -14,7 +14,7 @@ public class HailstoneSequenceTest extends TestCase { return new TestSuite(HailstoneSequenceTest.class); } - public void testIsRightTriangle() { + public void testGetHailstoneSequence() { ArrayList<Integer> results = HailstoneSequence.getHailstoneSequence(15); assertTrue(15 == results.get(0)); |
