/*****************************  Collatz.java  *********************************/

import AlgoTools.IO;

/**  Berechnet Collatz-Funktion, d.h.                     
 *   Anzahl der Iterationen der Funktion g: N -> N        
 *   bis die Eingabe auf 1 transformiert ist              
 *   mit g(x) = x/2 falls x gerade, 3*x+1 sonst          
 */

public class Collatz {

  public static void main(String argv[]) {

    int x, zaehler;                           // definiere 2 Variablen
    zaehler = 0;                              // setze zaehler auf 0
 
    x = IO.readInt("Bitte eine Zahl: ");      // fordere eine Zahl an 

    while (x != 1) {                          // solange x ungleich 1 ist
        if (x % 2 == 0)                       // falls x gerade ist
            x = x / 2;                        // teile x durch 2
        else                                  // andernfalls
            x = 3*x+1;                        // nimm x mit 3 mal und add. 1
        zaehler++;                            // erhoehe zaehler um eins
        IO.println(x);                        // gib x aus
    }
    IO.println("Anzahl der Iterationen: " + zaehler);
  }
}
