/****************************************************************************** * Name: Donna Gabai * NetID: dgabai * Precept: P99 * * Fall 2014, Programming Exam 1, Collatz Conjecture: * This program finds the length of a Collatz sequence given N. * * Dependencies: StdOut.java ****************************************************************************/ public class F14Part1 { // returns the length of the Collatz sequence of the argument N public static int seqLength(int N) { int length = 1; int n = N; // count how many times you can compute collatz numbers until you hit 1 while (n != 1) { // compute the next collatz number if (n % 2 == 0) n = n/2; else n = 3*n + 1; length++; } return length; } // the recursive collatz function, unedited public static void collatz(int N) { StdOut.print(N + " "); if (N == 1) return; if (N % 2 == 0) collatz(N/2); else collatz(3*N + 1); } public static void main(String[] args) { int N = Integer.parseInt(args[0]); // find the length of the collatz sequence for N int length = seqLength(N); // print sequence if length < 20 if (length < 20) collatz(N); // print length of sequence in square brackets StdOut.println("[" + length + "]"); } }