/** * Assignment 1, COMP268 Class: HailstoneSequence.java * * @description Represents a hailstone sequence * @author: mo khan Student ID: 3431709 * @date May 8, 2019 * @version 1.0 */ package Q7; import java.util.ArrayList; import java.util.Scanner; public class HailstoneSequence { /** * Returns a hailstone sequence using the seed provided. * * @param n the seed value for the hailstone sequence * @return a list of integers that represents the hailstone sequence. */ public static ArrayList getHailstoneSequence(int n) { return getHailstoneSequence(n, new ArrayList()); } /** * Appends to the hailstone sequence starting from the seed value provided. * * @param n the seed value for the hailstone sequence * @param items the list of items to append the next set of hailstone sequence to. * @return a list of integers that represents the hailstone sequence. */ public static ArrayList getHailstoneSequence(int n, ArrayList items) { items.add(n); if (n == 1) return items; else if (n % 2 == 0) return getHailstoneSequence(n / 2, items); else return getHailstoneSequence((n * 3) + 1, items); } public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Please enter seed for hailstone sequence: "); ArrayList sequence = HailstoneSequence.getHailstoneSequence(in.nextInt()); for (Integer i : sequence) System.out.println(i); for (Integer i : sequence) System.out.print("-"); } }