Mon beau miroir...

On appelle l'image miroir d'un nombre, le nombre lu à l'envers. Par exemple, l'image miroir de 324 est 423.

Un nombre est un palindrome s'il est égal à son image miroir. Par exemple, 52325, ou 6446 sont des palindromes.

À partir d'un nombre de départ, nous pouvons l'ajouter à son image miroir, afin d'obtenir un nouveau nombre, puis recommencer avec ce nouveau nombre jusqu'à obtenir un palindrome. À ce nombre de départ correspondent ainsi 2 valeurs : le palindrome obtenu, ainsi que le nombre d'addition qu'il a fallu faire pour l'obtenir.

Par exemple, pour le nombre de départ 475, nous obtenons :

        475 + 574 = 1049
        1049 + 9401 = 10450
        10450 + 5401 = 15851
        

Le denier nombre, 15851, est un palindrome. Pour le nombre de départ 475, nous atteignons donc le palindrome 15851 en 3 étapes.

Dans cet exercice, l'entrée est une séquence de 10 nombres. Vous devez répondre en donnant une séquence de 10 couples : le palindrôme obtenu, et le nombre d'étapes.

Vous avez l'assurance que pour tout nombre de départ proposé, vous atteindrez forcément un palindrôme en au plus 100 additions.

Par exemple, si l'entrée est :

        (844, 970, 395, 287)
        

Vous devrez envoyer en retour :

        [[7337, 3] , [15851, 3] , [881188, 7] , [233332, 7]]
        
Le coin tuto

Extraire les chiffres d'un nombre

Pour manipuler les chiffres d'un nombre, vous pouvez les extraire par divisions par 10 et restes de la division par 10 :

a = 567
a % 10
a = a // 10
a % 10
...

Vous pouvez aussi utiliser la manipulation des chaînes, en convertissant le nombre en chaîne de caractères, en modifiant la chaîne de caractères, puis en retransformant la chaîne en nombre.

Essayez ce qui suit dans un shell Python.

a = 456
s = str(a)
print(s)
s2 = 'BONJOUR'
print(s2[::-1])
b = int(s)
print(b)

La notation s2[::1] permet de renverser la chaîne de caractères.

Type de retour
une liste de listes de deux nombre entiers
Entrées du problème

(396, 294, 290, 861, 481, 194, 570, 463, 265, 935)

Vous devez être connecté.e pour proposer une réponse au défi
Vous devez être connecté.e pour accéder aux forums.