Raku kurss / Pielikums 🆕 / Darbs ar datiem / Skaitļi un matemātika / Exercises / Kolaca soļi

Risinājums: Kolaca soļi

Šeit ir iespējams risinājums uzdevumam.

Kods

my $n = 27;
my $steps = 0;

while $n != 1 {
    $n = $n %% 2 ?? $n div 2 !! 3 * $n + 1;
    $steps++;
}

say $steps;

🦋 Atrodiet programmu failā collatz.raku.

Izvade

111

Komentāri

  1. Trīsvērtīgais operators ?? !! nākamo vērtību izvēlas vienā izteiksmē: samazina $n uz pusi, kad tas ir pāra ($n %% 2), citādi piemēro 3 * $n + 1.

  2. 27 ir slavens mazs gadījums, kas veic pārsteidzoši garu līkumu — 111 soļus —, pirms beidzot nosēžas pie 1.

Kursa navigācija

Kolaca soļi   |   Viens skaitlis trīs bāzēs