在http://projecteuler.net/的问题 4 中,它说:
回文数的两种读法都是一样的。由两个 2 位数字的乘积构成的最大回文数是 9009 = 91 * 99。
找出由两个 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