Collatz
Een leuk wiskundig feitje is dat simpele regels grote gevolgen kunnen hebben. Zo vraagt het Collatz-vermoeden of twee eenvoudige regels elk geheel getal kunnen terugbrengen naar 1.
Meestal wordt het zo geformuleerd:
- Voor even getallen: halveer door 2
- Voor oneven getallen: vermenigvuldig met 3 en tel er 1 bij op
Laten we het testen!
Opmerking: Krijg je time-outs bij het uitvoeren van code? Controleer dan goed de logica van de if-else-instructie (of bekijk de Hint).
Deze oefening maakt deel uit van de cursus
Java voor gevorderden
Oefeninstructies
- Vul de juiste stopvoorwaarde in.
- Roep een methode aan om te controleren of
neven is. - Handel het oneven geval correct af — dit mag alleen afgaan als de oorspronkelijke
noneven is.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
class Collatz {
static boolean isEven(int n) {
return n % 2 == 0;
}
public static void main(String[] args) {
int n = 1634;
int i = 0;
System.out.print(n);
// Enter the appropriate termination condition
while (____) {
// Call a method to check if n is even
if (____(n)) {
System.out.println(" is even");
n /= 2;
} // Handle the odd case correctly. All non-even integers are odd
____ {
System.out.println(" is odd");
n = n * 3 + 1;
}
System.out.print(n);
i += 1;
}
System.out.println(" reached in " + i + " steps");
}
}