2017-08-28 3 views
1

Je pense que cela devrait fonctionner correctement, mais je reçois une erreur avec le nombre étant 1 moins que ce qu'il devrait être.Longueur de la chaîne Palindrome en Python à venir incorrect

def palindrome_chain_length(n): 
    count = 0 
    while str(n) != str(n)[::-1] : 
     n = n+n 
     count += 1 
    else: 
     return count 
+1

ne devrait-il pas être: 'n + = int (str (n) [:: - 1])' au lieu de 'n = n + n'? – alfasin

+0

Merci @alfasin! Vous avez raison, il devrait être n + = int (str (n) [:: - 1]) – DefiniteZer0

Répondre

1

Si vous obtenez juste compter 1 moins que vous voulez, commencer par count = 1. Et il me semble qu'il devrait être:

n += int(str(n)[::-1]) 

au lieu de:

n = n + n 

(voir le commentaire @alfasin).

+0

Merci, compte = 1 départ serait incorrect pour un nombre qui est déjà un palindrome, mais vous avez raison sur c'est n + = int (str (n) [:: - 1]) Merci encore! – DefiniteZer0

+0

Vous ne pouvez pas utiliser n [:: - 1] car l'objet int n'est pas indicable. Vous devez donc le transformer en chaîne, inverser et transformer à nouveau. – Denis