Commit 15cf738
Changed files (2)
assignments
assignment1
src
main
java
ca
mokhan
assignment1
test
java
ca
mokhan
assignment1
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);
}
}
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));