裴伯拉切数列:从第三个元素开始,每个元素为该元素前面的两个元素的和。
裴伯拉切数列: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