Курс Raku / Додаток 🆕 / Робота з даними / Числа та математика / Вправи / Кроки Коллатца
Розв’язання: Кроки Коллатца
Ось одне з можливих розв’язань задачі.
Код
my $n = 27;
my $steps = 0;
while $n != 1 {
$n = $n %% 2 ?? $n div 2 !! 3 * $n + 1;
$steps++;
}
say $steps;🦋 Знайдіть програму у файлі collatz.raku.
Вивід
111Коментарі
Тернарний оператор
?? !!обирає наступне значення одним виразом: ділить$nнавпіл, коли воно парне ($n %% 2), а інакше застосовує3 * $n + 1.27— славетний невеликий випадок, що робить напрочуд довгий гак —111кроків, — перш ніж нарешті осісти на1.