2017-12-31 28 views
1

を通じて間違った出力、私はこの問題を解決しようとしています別のプログラム

を回文機能の呼び出し中に回文数は同じ両方の方法を読み込みます。 2つの2桁の数字の積で作られた最大の回文桁は9009 = 91 × 99. です。以下は、数字がPalindromeかどうかを見つけるために使用したコードです。

#largest product of two digit no.s which is a palindrome eg 91*99 = 9009 
     def check_palindrome(str): 
      x = len(str) 
      for i in range(x//2): 
       if str[i] == str[x-1-i]: 
        flag = 0 
       else: 
        flag = 1 
      if flag== 0: 
       print "palindrome" 
      else: 
       print " not palindrome" 
     check_palindrome('9009') 
i= 91 
j= 99 
product = i* j 
print product 
check_palindrome('product') 

iは積を計算した後、関数check_palindrome()を呼び出すと、個別に呼び出されたとき、それは正しい出力を提供しながら、プログラムが間違った出力が得られます。

+0

['str'](https://docs.python.org/3/library/functions.html#func-str)のように、変数名にPythonキーワードまたは関数名を使用しないでください。 - 代わりに 's'を使用してください。それは間違いを見つけにくいです。 – wwii

答えて

4

あなたが回文関数に、回文ではないリテラル文字列"product"、渡している:

check_palindrome('product') 

を単一引用符を削除し、文字列に変換します。

check_palindrome(str(product)) 

productに格納されている整数を表す文字列を渡します。自身と文字列sの逆を比較

def check_palindrome(s): 
    return s == s[::-1] 

:余談として


は、ここに文字列が回文であるかどうかをテストするための簡単な方法です。両方が等しい場合、それは回文です。

関連する問題