Začněte nyníZačněte zdarma

Collatz

Matematika skrývá spoustu zajímavých zákonitostí – jednoduchá pravidla mohou vést k překvapivým výsledkům. Příkladem je Collatzova domněnka, která tvrdí, že dvě jednoduchá pravidla dokážou libovolné celé číslo převést na 1.
Pravidla jsou tato:

  • Pro sudá čísla: vyděl 2
  • Pro lichá čísla: vynásob 3 a přičti 1
    Pojďme to vyzkoušet!

Poznámka: Pokud kód překročí časový limit, pečlivě zkontroluj logiku příkazu if-else (nebo se podívej do nápovědy).

Toto cvičení je součástí kurzu

Intermediate Java

Zobrazit kurz

Pokyny k cvičení

  • Zadej odpovídající podmínku ukončení smyčky.
  • Zavolej metodu, která ověří, zda je n sudé.
  • Správně ošetři případ lichého čísla – tato větev se má spustit jen tehdy, když je původní n liché.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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");
  }
}
Upravit a spustit kód