Zacznij terazZacznij za darmo

Collatz

Ciekawostka matematyczna: proste reguły mogą prowadzić do zaskakujących konsekwencji. Przykładem jest Hipoteza Collatza, która pyta, czy dwie proste zasady mogą sprowadzić dowolną liczbę całkowitą do 1.
Zasady są następujące:

  • Dla liczb parzystych: podziel przez 2
  • Dla liczb nieparzystych: pomnóż przez 3, a następnie dodaj 1
    Sprawdźmy, jak to działa!

Uwaga: jeśli kod przekroczy limit czasu, dokładnie sprawdź logikę instrukcji if-else (lub zajrzyj do Podpowiedzi).

To ćwiczenie jest częścią kursu

Java średnio zaawansowany

Zobacz kurs

Instrukcje do ćwiczenia

  • Wprowadź odpowiedni warunek zakończenia pętli.
  • Wywołaj metodę sprawdzającą, czy n jest parzyste.
  • Obsłuż przypadek liczby nieparzystej – powinien się uruchomić tylko wtedy, gdy pierwotne n jest nieparzyste.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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");
  }
}
Edytuj i uruchom kod