Курс по 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

Коментари

  1. Тернарният оператор ?? !! избира следващата стойност с един израз: дели $n наполовина, когато е четно ($n %% 2), а иначе прилага 3 * $n + 1.

  2. 27 е прочут малък случай, който прави изненадващо дълга обиколка — 111 стъпки, — преди най-сетне да се установи на 1.

Навигация в курса

Стъпки на Колац   |   Едно число в три бройни системи