Перейти к содержимому
Задача · Циклы · урок 8 из 8

Задача: шаги Коллатца

Шаг Коллатца меняет число так: чётное число делится на 2, а нечётное n заменяется на 3 * n + 1. Напишите функцию int collatz_steps(int n), которая возвращает, сколько таких шагов нужно, чтобы из n получилась 1.

  • collatz_steps(6) → 8: 6, 3, 10, 5, 16, 8, 4, 2, 1
  • collatz_steps(27) → 111
  • collatz_steps(1) → 0

Ограничения: n от 1 до 10000; все промежуточные числа помещаются в int.

collatz.cpp — cpp
cpp · строк: 4
Ctrl+Enter запуск · Esc выйти из редактора