我正在制作斐波那契系列节目。
x=0
y=1
print (x)
print (y)
z = None
for z in range(1,100,x+y):
z=x+y
print(z)
x = y
y = z
问题是输出显示的数字超过100.这是一个输出样本
0
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
为什么值大于100?
注意:这个程序是用python 3.6编写的
问题是你运行循环100次,而不是检查结果是否小于100.如果你使用while
循环而不是for
循环,代码可能更容易阅读:
x=0
y=1
while True:
fib = x + y
if fib < 100:
print (fib)
x = y
y = fib
else:
break
如果你想让它停在一个给定的数字你需要一个if语句,如果不是你,它将运行fibonacci序列100次
x=0
for number in range(1,100):
x = number + x
if x <= 100:
print(x)
else:
break
此外,您不必使用步骤,因为它为每个循环自动递增1
你的Q
why are they more than hundred
的答案:因为你运行斐波那契序列100次,你不会在它达到100时停止它。