2017-08-28 39 views
1

我觉得这应该是正确的,但我得到一个错误,数量比它应该小1。Python中的回文链长度不正确

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

不应该是:'n + = int(str(n)[:: - 1])'而不是'n = n + n'? – alfasin

+0

谢谢@alfasin! 你是对的,应该是n + = int(str(n)[:: - 1]) – DefiniteZer0

回答

1

如果您只得到数量少于1的数量,请从count = 1开始。 而在我看来,它应该是:

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

代替:

n = n + n 

(见注释@alfasin)。

+0

谢谢,count = 1开始对于一个已经是回文的数字是不正确的,但是你是正确的它是n + = int(str(n)[:: - 1]) 再次感谢! – DefiniteZer0

+0

您不能使用n [:: - 1],因为int对象不是可以订阅的。所以你必须将它转换为字符串,反转并再次转换。 – Denis