/home/sjenks/NetBeansProjects/CS2/src/review/CollatzSequence.java
 1 /*
 2  * This program will act as a review in preparation for the CS2 class 
 3  * The program is supposed to take a number from the input scanner and then 
 4  * Produce a series of numbers after according to the Collatz Sequence
 5  * - Collatz Sequence: 
 6  *  if the number is even: divide by two 
 7  *  if the number is odd: multiply by three and add one
 8  */
 9 package review;
10 
11 import java.util.Scanner;
12 
13 /**
14  *
15  * @author sjenks
16  */
17 public class CollatzSequence {
18 
19     /**
20      * @param args the command line arguments
21      */
22     public static void main(String[] args) {
23         int posNumber = getNumber();
24         sequence(posNumber);
25 
26     }
27 
28     private static int getNumber() {
29         Scanner scanner = new Scanner(System.in);
30         System.out.print("The positive interger? ");
31         int posNumber = scanner.nextInt();
32         return posNumber;
33     }
34 
35     private static void sequence(int posNumber) {
36         int i = posNumber;
37         while (i > 1) {
38             for (int x = 0; x < 10 & i >= 1; x = x + 1) {
39                 System.out.print(i + " ");
40                 if (isEven(i)) {
41                     int newNumber = i / 2;
42                     i = newNumber;
43                 } else if (i == 1) {
44                     break;
45                 } else {
46                     int newNumber = (i * 3) + 1;
47                     i = newNumber;
48                 }
49             }
50             System.out.println();
51         }
52     }
53 
54     private static boolean isEven(int i) {
55         return ((i % 2) == 0);
56 
57     }
58 
59 }
60