Menu
CoddyTech

Steps to Reduce a Number to Zero

Beginne mit einer nichtnegativen ganzen Zahl n und wende wiederholt eine Regel an, bis sie 0 erreicht: Ist die Zahl gerade, teile sie durch 2; ist sie ungerade, ziehe 1 ab. Jede Anwendung der Regel ist ein Schritt. Gib die Anzahl der benötigten Schritte zurück.

Funktion

numberOfSteps(n: integer) → integer
ninteger
die Startzahl
Gibt zurückinteger
die Anzahl der Schritte, bis die Zahl 0 erreicht

Einschränkungen

  • 0 ≤ n ≤ 231 - 1

Beispiele

Eingabe
n = 14
Ausgabe
6
Erklärung
Die Zahl durchläuft 14 → 7 → 6 → 3 → 2 → 1 → 0: drei Halbierungen und drei Subtraktionen, 6 Schritte.

lock icon+12 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Angenommen, eine ungerade Zahl kann auch um 1 erhöht statt verringert werden. Wie viele Schritte sind mindestens nötig, um 0 zu erreichen, und welche Wahl ist für 15 richtig?

Code zurücksetzen
def numberOfSteps(n):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

n = 14

Erwartet

6