【发布时间】:2014-06-07 17:04:14
【问题描述】:
我试图做的是找到由两个 3 位数字的乘积构成的最大回文。 (下面的代码就是这样)现在我知道最大的数字是 906609 或 913 * 993。现在我遇到的问题是下面的代码找不到那个数字。由于代码现在它发现 90909 是最大的
for x in xrange(0, 1000):
for y in xrange(0, 1000):
#print '%d * %d = %d' % (x, y, x*y)
num = (x * y)
q = list(str(x * y))
q.reverse()
w = q
#print(w)
s = filter(str.isdigit, repr(q))
q = int(s)
#print(q)
if num == q:
hold3 = num, q, x , y
print(hold3)
print(hold3)
现在,如果我将 for 中的数字更改为 914 和 994。它会给我 906609 的答案。 我想知道为什么我会得到两个不同的号码。对不起,我对 python 很陌生。
for x in xrange(0, 914):
for y in xrange(0, 994):
#print '%d * %d = %d' % (x, y, x*y)
num = (x * y)
q = list(str(x * y))
q.reverse()
w = q
#print(w)
s = filter(str.isdigit, repr(q))
q = int(s)
#print(q)
if num == q:
hold3 = num, q, x , y
print(hold3)
print(hold3)
【问题讨论】:
-
你应该使用
xrange而不是x range -
x 范围是错字,否则不会运行
-
@MartinKonecny 谢谢,当我打字的时候,我忘了把它保留为一个。
标签: python