Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Vul de juiste stopvoorwaarde in.
  • Roep een methode aan om te controleren of n even is.
  • Handel het oneven geval correct af — dit mag alleen afgaan als de oorspronkelijke n oneven 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");
  }
}
Code bewerken en uitvoeren