public class WunderProg {
public static void main (String [] args) {
Wunder_Test w = new Wunder_Test ();
System.out.println ("Am meisten braucht die Zahl " + w.wunder_max (true) + " mit " + w.wunder_max (false) + " Schritten");
w.wunder_rek_out (22);
}
public static class Wunder_Test {
Wunder_Test () {}
int wunder (int n) {
int i = 0;
while (n != 1) {
if ((n % 2) == 0)
n = n / 2;
else
n = (n * 3) + 1;
i++;
}
return i;
}
int wunder_rek (int n) {
if (n == 1)
return 0;
else if ((n % 2) == 0)
return 1 + this.wunder_rek (n/2);
return 1 + this.wunder_rek (n*3+1);
}
int wunder_rek_out (int n) {
System.out.println (n);
if (n == 1)
return 0;
else if ((n % 2) == 0)
return 1 + this.wunder_rek_out (n/2);
return 1 + this.wunder_rek_out (n*3+1);
}
int wunder_max (boolean flag) {
int i;
int imax = 0;
int max;
int tmp;
max = -1;
for (i = 1; i < 100; i++) {
tmp = wunder (i);
if (tmp > max) {
max = tmp;
imax = i;
}
}
if (flag == true)
return imax;
return max;
}
}
}