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, które są potrzebne.

Funkcja

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

Ograniczenia

  • 0 ≤ n ≤ 231 - 1

Przykłady

Wejście
n = 14
Wyjście
6
Wyjaśnienie
Liczba zmienia się następująco: 14 → 7 → 6 → 3 → 2 → 1 → 0: trzy dzielenia przez 2 i trzy odejmowania, 6 kroków.

lock icon+12 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Załóżmy, że liczba nieparzysta może również zwiększyć się o 1 zamiast zmniejszyć. Jaka jest najmniejsza liczba kroków potrzebnych do osiągnięcia 0 i który wybór jest właściwy dla 15?

Zresetuj kod
def numberOfSteps(n):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

n = 14

Oczekiwane

6