Курс по Raku / Приложение 🆕 / Работа с данни / Числа и математика / Exercises / Стъпки на Колац
Решение: Стъпки на Колац
Ето едно възможно решение на задачата.
Код
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.