斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
求斐波那契数列中第n个数的值:1,1,2,3,5,8,13,21,34…
方法一:用for循环
n = int(input('请输入要一个整数:')) n_2 = 0 n_1 = 1 current = 1 for x in range(2, n+1): current = n_2 + n_1 n_2 = n_1 n_1 = current print('第%d个数是%d'%(n, current))
方法二:递归函数
def fab(n): if n == 1 or n == 2: return 1 return fab(n-1) + fab(n-2) print(fab(5))
方法三:生成器
def fib(n): a, b = 0, 1 for _ in range(n): a, b = b, a + b yield a for val in fib(20): print(val)
总结