Tu viens d'être embauché comme professeur de mathématiques. La première semaine s'est bien passée, mais quelque chose ne tourne pas rond la deuxième. Le problème, c'est que toutes les réponses données par tes étudiants sont fausses ! Heureusement, tes compétences en mathématiques t'ont permis d'identifier le problème : les réponses des étudiants sont correctes, mais elles sont toutes en base 2 (binaire) ! Étonnamment, il s'avère que chaque semaine, les étudiants utilisent une base différente. Pour t'aider à vérifier rapidement les réponses des étudiants, tu vas construire un outil pour convertir d'une base à une autre.
Convertis une séquence de chiffres dans une base, représentant un nombre, en une séquence de chiffres dans une autre base, représentant ce même nombre.
Essaie d'implémenter la conversion toi-même. N'utilise pas autre chose pour faire la conversion à ta place.
Dans la notation positionnelle, un nombre en base b peut se comprendre comme une combinaison linéaire des puissances de b.
Le nombre 42, en base 10, signifie :
(4 × 10¹) + (2 × 10⁰)
Le nombre 101010, en base 2, signifie :
(1 × 2⁵) + (0 × 2⁴) + (1 × 2³) + (0 × 2²) + (1 × 2¹) + (0 × 2⁰)
Le nombre 1120, en base 3, signifie :
(1 × 3³) + (1 × 3²) + (2 × 3¹) + (0 × 3⁰)
Oui. Ces trois nombres ci-dessus sont exactement les mêmes. Félicitations !
Lève l'une de ces strings (telles quelles) lorsque l'entrée n'est pas valide :
"input base must be >= 2""output base must be >= 2""all digits must satisfy 0 <= d < input base"Les nombres négatifs ne sont pas pris en charge.
Inscris-toi sur Exercism pour apprendre et maîtriser Factor avec 47 concepts163 exercices, et un vrai mentorat humain, le tout gratuitement.