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
Pokyny k cvičení
- Zadej odpovídající podmínku ukončení smyčky.
- Zavolej metodu, která ověří, zda je
nsudé. - Správně ošetři případ lichého čísla – tato větev se má spustit jen tehdy, když je původní
nliché.
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");
}
}