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 correspond à 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.
challenge icon

Pour aller plus loin

Supposons qu’un nombre impair puisse également augmenter de 1. Quel est le nombre minimal d’étapes pour atteindre 0, et quel choix est correct pour 15 ?

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

Test #1

Test #2

Test #3

Argument

n = 14

Résultat attendu

6