http://projecteuler.net/の問題 4には、次のように書かれています。
回文数はどちらの方法でも同じように読めます。2 つの 2 桁の数の積から作られる最大の回文は、9009 = 91 * 99 です。
2 つの 3 桁の数の積から作られる最大の回文を見つけます。
ここにこのコードがあります
def isPalindrome(num):
return str(num) == str(num)[::-1]
def largest(bot, top):
for x in range(top, bot, -1):
for y in range(top,bot, -1):
if isPalindrome(x*y):
return x*y
print largest(100,999)
最大の回文を見つける必要があり、私が正しいと信じているものを吐き出し580085
ますが、プロジェクトオイラーはそうは思いません。ここで何か問題がありますか?
for ループをよく考えたとき、私は最大の愚かな私をチェックするものを削除しました。作業コードはこちら
def isPalindrome(num):
return str(num) == str(num)[::-1]
def largest(bot, top):
z = 0
for x in range(top, bot, -1):
for y in range(top,bot, -1):
if isPalindrome(x*y):
if x*y > z:
z = x*y
return z
print largest(100,999)
吐き出す 906609