首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目Euler问题4

项目Euler问题4
EN

Stack Overflow用户
提问于 2011-05-18 06:37:32
回答 10查看 9.3K关注 0票数 3
代码语言:javascript
复制
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

关于the problem的这个解决方案,我有一个问题。我知道这是正确的,但我想知道为什么在xrange(999,100,-1)-1是针对a和b For循环的。请解释一下。我对此还很陌生:)

EN

回答 10

Stack Overflow用户

发布于 2011-05-18 06:41:27

xrange()的第三个参数是增量值。默认值为1,这意味着计数器将以递增的方向计数。要以递减方向计数,请使用-1。您的a计数器将从999变为101 ( xrange()迭代器在到达第二个参数值之前停止)。

有关将来的参考,请参阅xrange() documentation

票数 7
EN

Stack Overflow用户

发布于 2011-05-18 06:41:21

-1指定了一个负步骤。因此从999下降到100 (独占)。

票数 5
EN

Stack Overflow用户

发布于 2011-05-18 06:44:46

xrange函数有三个参数:startstopstep。它返回一个从startstop的数字范围,但不包括它。如果'start‘大于stop,则必须提供负步长。

所以基本上xrange(999, 100, -1)会给你[999, 998, ..., 101]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6037973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档