Menu
CoddyTech

Steps to Reduce a Number to Zero

Parti da un intero non negativo n e ripeti una regola finché non raggiunge 0: se il numero è pari, dividilo per 2; se è dispari, sottrai 1. Ogni applicazione della regola è un passaggio. Restituisci il numero di passaggi necessari.

Funzione

numberOfSteps(n: integer) → integer
ninteger
il numero iniziale
Restituisceinteger
il numero di passaggi finché il numero non raggiunge 0

Vincoli

  • 0 ≤ n ≤ 231 - 1

Esempi

Input
n = 14
Output
6
Spiegazione
Il numero procede 14 → 7 → 6 → 3 → 2 → 1 → 0: tre divisioni per due e tre sottrazioni, 6 passaggi.

lock icon+12 test nascosti all’invio

challenge icon

Per approfondire

Supponiamo che un numero dispari possa anche aumentare di 1 invece di diminuire. Qual è il numero minimo di passaggi per arrivare a 0 e quale scelta è corretta per 15?

Ripristina il codice
def numberOfSteps(n):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

n = 14

Atteso

6