Méli Mélo binaire de nombres

Ce défi est tiré de c0d1ngUP 2014

Cet exercice nécessite de savoir convertir des nombres de la base 10 à la base 2 (le binaire) et réciproquement.
Vous pouvez consulter http://www.apprendre-en-ligne.net/crypto/images/bases.html pour plus d'informations.

Nous allons construire une suite de nombres, en partant d'un nombre de départ, par exemple 34.

  • Tout d'abord, nous convertissons ce nombre en binaire : 100010.
  • Puis, nous comptons combien de 1 sont présents dans cette valeur binaire (dans notre exemple, il y en a 2) ; nous convertissons cette quantité en binaire (soit 10 ici).
  • Nous mettons alors bout à bout la valeur binaire de départ, et la quantité de 1 qu'elle contenait (en binaire) : 100010 10
  • À partir de cette nouvelle valeur binaire, nous obtenons donc un nouveau nombre décimal, qui ici vaut 138.

À partir de ce nouveau nombre, nous renouvelons l'opération : 10001010 contient 3 fois le chiffre 1 et 3 s'écrit 11 en binaire. Le nombre suivant est donc 1000101011 qui vaut 555, et ainsi de suite...

Défi :

L'entrée de ce défi est le nombre de départ u (donné en base 10) et le nombre n de transformations à faire. Pour valider ce défi, il faut donner, en base 10, le nombre obtenu après avoir appliqué n transformations successives au nombre u.

Testez votre code :

si le nombre u vaut 5 (101 en binaire) et que n vaut 4, la suite obtenue sera :
101 (il y a 2 (10) chiffres 1) → 10110 (il y a 3 (11) chiffres 1) → 1011011 (il y a 5 (101) chiffres 1) → 1011011101 (il y a 7 (111) chiffres 1) → 1011011101111
La réponse est donc 5871 (l'écriture en base 10 de 1011011101111 est 5871)

Type de retour
Un nombre entier
Entrées du problème
  • u : 53
  • n : 21
Vous devez être connecté.e pour proposer une réponse au défi
Vous devez être connecté.e pour accéder aux forums.