Fibonacci列表如何制作排除数字的条件

时间:2013-07-24 01:53:59

标签: python list loops

fib = [0,1]
a = 1
b = 0
i = 0
while i < n:
   i = a+b
   a,b = i, a
   fib.append(i)

这适用于'n'(给定变量)是实际Fibonacci序列中的数字的情况,例如21或13.但是,如果数字是6,那么它会增加一个数字。该列表不应包含大于n的数字。

2 个答案:

答案 0 :(得分:4)

您可以先将a添加到列表中,然后再进行增量。

fib = [0]
a, b = 1, 0
while a <= n:
   fib.append(a)
   a,b = a+b, a

答案 1 :(得分:0)

使用经典的时髦递归Fibonacci函数(我花了几次尝试记住并且正确):

def fib(num):
    if ((num == 0) or (num == 1)): return 1
    fib_num = fib(num - 1) + fib(num - 2)
    return fib_num

x, n, i = 2, 15, []
while (fib(x) < n):
    i.append(fib(x))
    x += 1