Fibonnacci数小于设定值

时间:2015-06-22 19:36:39

标签: python python-3.x fibonacci

为什么这段代码不会产生小于设定值的斐波纳契数。

from math import sqrt
def Fib(n):
    return round(((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5)))

def Fiblessthan(m):
    total = [0]
    count = 1
    while max(total) < m:
        total.append(Fib(count))
        count = count + 1

例如,我不能打印所有小于4000000的斐波那契数字。这是解决这个问题的正确方法。

1 个答案:

答案 0 :(得分:1)

from math import sqrt
def Fib(n):
    return round(((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5)))

def Fiblessthan(m):
    total = [0]
    count = 1
    while total[-1] < m:
        total.append(Fib(count))
        count = count + 1
    return total

你必须检查总长度是否小于m。