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 Ausgangszahl
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 geht 14 → 7 → 6 → 3 → 2 → 1 → 0: drei Halbierungen und drei Subtraktionen, 6 Schritte.
challenge icon

Weiterführende Frage

Angenommen, eine ungerade Zahl kann ebenfalls um 1 erhöht 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

Test #1

Test #2

Test #3

Argument

n = 14

Erwartete Ausgabe

6