我正在为斐波那契数列编写程序。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
当年话下
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 时你不会停止它。
添加回答
举报
0/150
提交
取消
