Menu
CoddyTech

Steps to Reduce a Number to Zero

Начните с неотрицательного целого числа n и повторяйте одно правило, пока не достигнете 0: если число чётное, разделите его на 2; если нечётное, вычтите 1. Каждое применение правила — это один шаг. Верните количество шагов.

Функция

numberOfSteps(n: integer) → integer
ninteger
начальное число
Возвращаетinteger
количество шагов до тех пор, пока число не достигнет 0

Ограничения

  • 0 ≤ n ≤ 231 - 1

Примеры

Ввод
n = 14
Вывод
6
Пояснение
Число проходит путь 14 → 7 → 6 → 3 → 2 → 1 → 0: три деления пополам и три вычитания, 6 шагов.

lock icon+12 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Предположим, нечётное число также можно увеличить на 1 вместо уменьшения. Каково минимальное число шагов, чтобы достичь 0, и какой выбор верен для 15?

Сбросить код
def numberOfSteps(n):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

n = 14

Ожидается

6