什么是斐波那契数 斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34... 即从0和1开始,之后的斐波那契数列系数就由之前的两数相加。 解法一:常规解法 def fib(n): # 0,1 不做处理 if n == 0 or n == 1: return n # 前一个 和 前两个数的和 return fib(n - 1) + fib(n - 2)
# 生成前20个数列 for i in range(0, 20): print(fib(i), end=' ')
解法二:迭代相加 def fib(n): num1, num2 = 1, 1 # 迭代相加 for i in range(n - 1): num1, num2 = num1 + num2, num1 return num1
解法三:生成器 def fid(n): i, num1, num2 = 0, 1, 1 while i < n: # 通过生成器来实现 yield num1 num1, num2 = num1 + num2, num1 i += 1
# 前20个数列 result = fid(20) print([i for i in result])
|