これは正しく動作するはずですが、カウントが1未満であるとエラーが発生します。PythonのPalindromeチェーンの長さが間違っています
def palindrome_chain_length(n):
count = 0
while str(n) != str(n)[::-1] :
n = n+n
count += 1
else:
return count
これは正しく動作するはずですが、カウントが1未満であるとエラーが発生します。PythonのPalindromeチェーンの長さが間違っています
def palindrome_chain_length(n):
count = 0
while str(n) != str(n)[::-1] :
n = n+n
count += 1
else:
return count
ちょうどあなたが望む以上にカウント1が得られたら、count = 1
から始めてください。 そして、それがあるべきように私には思える:(コメント@alfasinを参照してください)
n = n + n
:
n += int(str(n)[::-1])
の代わりに。
する必要がありますありがとう、カウント= 1開始は、すでに回文である番号が正しくないが、正しいですそれはn + = int(str(n)[:: - 1]) もう一度ありがとう! – DefiniteZer0
intオブジェクトがサブスクリプト可能でないため、n [:: - 1]は使用できません。だからあなたはそれを文字列に変換し、逆に変換し直す必要があります。 – Denis
'n = n + n'ではなく' n + = int(str(n)[:: - 1]) 'でなくてはなりませんか? – alfasin
ありがとう@alfasin! あなたは正しいです、それはn + = int(str(n)[:: - 1]) – DefiniteZer0