LoslegenKostenlos loslegen

Collatz

Eine schöne kleine Tatsache der Mathematik ist, dass einfache Regeln große Auswirkungen haben können. Zum Beispiel fragt die Collatz-Vermutung, ob zwei einfache Regeln jede ganze Zahl auf 1 reduzieren können.
Sie wird meist so formuliert:

  • Bei geraden Zahlen: halbiere durch 2
  • Bei ungeraden Zahlen: multipliziere mit 3 und addiere 1
    Lass es uns testen!

Hinweis: Wenn dein Code in einen Timeout läuft, überprüfe sorgfältig die Logik der if-else-Anweisung (oder den Hinweis).

Diese Übung ist Teil des Kurses

Java für Fortgeschrittene

Kurs anzeigen

Anleitung zur Übung

  • Gib die passende Abbruchbedingung ein.
  • Rufe eine Methode auf, um zu prüfen, ob n gerade ist.
  • Behandle den ungeraden Fall korrekt – dieser sollte nur ausgelöst werden, wenn das ursprüngliche n ungerade ist.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen