项目欧拉问题第4号
n = 0
for a in xrange(999, 100, -1):
for b in xrange(a, 100, -1):
x = a * b
if x > n:
s = str(a * b)
if s == s[::-1]:
n = a * b
print n
我有一个关于这个解决方案的问题,链接在这里:这个问题。我知道这个答案是对的,但我想知道在 xrange(999,100,-1)
中,为什么会有 -1
这个数字。请解释一下,a 和 b 的循环是怎么回事。我还是个新手呢 :)
11 个回答
1
xrange
函数有三个参数:start
、stop
和 step
。它的作用是生成一系列数字,从 start
开始,一直到 stop
,但不包括 stop
本身。如果 start
比 stop
大,那就需要提供一个负的步长。
简单来说,xrange(999, 100, -1)
会给你一个列表,内容是 [999, 998, ..., 101]
。
5
这里的 -1 表示一个负的步长,也就是说,从 999 开始往下走,一直到 100,但不包括 100。
7
xrange()
的第三个参数是增量值。默认值是1,这意味着计数器会向上增加。如果你想让计数器向下减少,可以用-1。这样你的计数器a就会从999数到101(xrange()
这个迭代器会在到达第二个参数值之前停止)。
如果你想了解更多,可以查看xrange()
的文档。