Menu
CoddyTech

Steps to Reduce a Number to Zero

Partez d’un entier non négatif n et répétez une règle jusqu’à ce qu’il atteigne 0 : si le nombre est pair, divisez-le par 2 ; s’il est impair, soustrayez 1. Chaque application de la règle compte pour une étape. Renvoyez le nombre d’étapes nécessaires.

Fonction

numberOfSteps(n: integer) → integer
ninteger
le nombre de départ
Renvoieinteger
le nombre d’étapes jusqu’à ce que le nombre atteigne 0

Contraintes

  • 0 ≤ n ≤ 231 - 1

Exemples

Entrée
n = 14
Sortie
6
Explication
Le nombre suit la séquence 14 → 7 → 6 → 3 → 2 → 1 → 0 : trois divisions par deux et trois soustractions, 6 étapes.

lock icon+12 tests cachés à la soumission

challenge icon

Pour aller plus loin

Supposons qu’un nombre impair puisse aussi augmenter de 1 au lieu de diminuer. Quel est le nombre minimal d’étapes pour atteindre 0, et quel choix est le bon pour 15 ?

Réinitialiser le code
def numberOfSteps(n):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

n = 14

Attendu

6