Méli Mélo binaire de nombres

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 5871 est 1011011101111)

Ce problème est tiré de c0d1ng UP 2014

Type de retour

Un nombre entier

Entrée du problème

  • u : 37
  • n : 26

Formulaire de réponse

Vous devez être connecté pour pouvoir répondre aux défis

Tags : cup14 numérique