【发布时间】:2012-09-22 08:49:52
【问题描述】:
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
【问题讨论】:
-
因为我得到了 995 * 583 = 580085
-
没有阅读论坛...我应该删除这个吗?
-
这确实不违反规则......它不在论坛上......
标签: python math logic palindrome