我觉得这应该是正确的,但我得到一个错误,数量比它应该小1。Python中的回文链长度不正确
def palindrome_chain_length(n):
count = 0
while str(n) != str(n)[::-1] :
n = n+n
count += 1
else:
return count
我觉得这应该是正确的,但我得到一个错误,数量比它应该小1。Python中的回文链长度不正确
def palindrome_chain_length(n):
count = 0
while str(n) != str(n)[::-1] :
n = n+n
count += 1
else:
return count
如果您只得到数量少于1的数量,请从count = 1
开始。 而在我看来,它应该是:
n += int(str(n)[::-1])
代替:
n = n + n
(见注释@alfasin)。
谢谢,count = 1开始对于一个已经是回文的数字是不正确的,但是你是正确的它是n + = int(str(n)[:: - 1]) 再次感谢! – DefiniteZer0
您不能使用n [:: - 1],因为int对象不是可以订阅的。所以你必须将它转换为字符串,反转并再次转换。 – Denis
不应该是:'n + = int(str(n)[:: - 1])'而不是'n = n + n'? – alfasin
谢谢@alfasin! 你是对的,应该是n + = int(str(n)[:: - 1]) – DefiniteZer0