python 裴伯拉切数列

裴伯拉切数列:从第三个元素开始,每个元素为该元素前面的两个元素的和。

裴伯拉切数列:0,1,1,2,3,5,8,13,21,34,55......

求出小于n的裴伯拉切数列。

def fibo(n):
    if n < 0:
        print("n必须大于0")
    if n == 0:
        return None
    if n > 0:
        a, b = 0, 1
        while a < n:
            print(a, end=" ")
            a, b = b, b+a


if __name__ == "__main__":
    fibo(8)
0 1 1 2 3 5 

 

通过递归也可以实现。

我们发现,f(0)=0,f(1)=1,f(2)=f(0)+f(1),f(3)=f(1)+f(2)......f(n)=f(n-2)+f(n-1)

def fibo(n):
    if n == 0 or n == 1:
        return n
    if n > 1:
        return fibo(n-2) + fibo(n-1)


if __name__ == "__main__":
    print(fibo(8))
21

  

posted on 2019-07-15 14:21  青柠锦鲤  阅读(380)  评论(0编辑  收藏  举报