Menu
CoddyTech

Steps to Reduce a Number to Zero

Zacznij od nieujemnej liczby całkowitej n i powtarzaj jedną regułę, aż osiągnie 0: jeśli liczba jest parzysta, podziel ją przez 2; jeśli jest nieparzysta, odejmij 1. Każde zastosowanie reguły to jeden krok. Zwróć liczbę kroków.

Funkcja

numberOfSteps(n: integer) → integer
ninteger
liczba początkowa
Zwracainteger
liczba kroków, zanim liczba osiągnie 0

Ograniczenia

  • 0 ≤ n ≤ 231 - 1

Przykłady

Wejście
n = 14
Wyjście
6
Wyjaśnienie
Liczba zmienia się tak: 14 → 7 → 6 → 3 → 2 → 1 → 0: trzy dzielenia przez dwa i trzy odejmowania, 6 kroków.
challenge icon

Pytanie dodatkowe

Załóżmy, że liczbę nieparzystą można również zwiększyć o 1. Jaka jest najmniejsza liczba kroków potrzebna do osiągnięcia 0 i która opcja jest właściwa dla 15?

Zresetuj kod
def numberOfSteps(n):
    # Wpisz kod tutaj

Test #1

Test #2

Test #3

Argument

n = 14

Oczekiwany wynik

6