2017-08-28 12 views
1

これは正しく動作するはずですが、カウントが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

'n = n + n'ではなく' n + = int(str(n)[:: - 1]) 'でなくてはなりませんか? – alfasin

+0

ありがとう@alfasin! あなたは正しいです、それはn + = int(str(n)[:: - 1]) – DefiniteZer0

答えて

1

ちょうどあなたが望む以上にカウント1が得られたら、count = 1から始めてください。 そして、それがあるべきように私には思える:(コメント@alfasinを参照してください)

n = n + n 

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

の代わりに。

+0

する必要がありますありがとう、カウント= 1開始は、すでに回文である番号が正しくないが、正しいですそれはn + = int(str(n)[:: - 1]) もう一度ありがとう! – DefiniteZer0

+0

intオブジェクトがサブスクリプト可能でないため、n [:: - 1]は使用できません。だからあなたはそれを文字列に変換し、逆に変換し直す必要があります。 – Denis

関連する問題