为了账号安全,请及时绑定邮箱和手机立即绑定

创建斐波那契数列时的“for”循环问题

创建斐波那契数列时的“for”循环问题

qq_笑_17 2021-06-04 20:39:39
我正在为斐波那契数列编写程序。x=0y=1print (x)print (y)z = Nonefor z in range(1,100,x+y):    z=x+y    print(z)    x = y    y = z问题是输出显示的数字超过 100。这是输出示例011235813213455891442333776109871597258441816765为什么有大于 100 的值?注意:这个程序是用python 3.6编写的
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

问题是你运行循环 100 次而不是检查结果是否小于 100。如果你使用while循环而不是for循环,代码可能更容易阅读:


x=0

y=1

while True:

    fib = x + y

    if fib < 100:

        print (fib)

        x = y

        y = fib

    else:

        break


查看完整回答
反对 回复 2021-06-09
?
当年话下

TA贡献1890条经验 获得超9个赞

如果你想让它停在给定的数字你需要一个 if 语句,否则你将运行斐波那契数列 100 次


x=0

for number in range(1,100):

    x = number + x

    if x <= 100:

        print(x)

    else:

        break

此外,您不必使用 step,因为它会为每个循环自动递增 1


以及你的问题的答案why are they more than hundred:因为你运行了 100 次斐波那契数列,当它达到 100 时你不会停止它。


查看完整回答
反对 回复 2021-06-09
  • 2 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号