什么是斐波那契數(shù) 斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列,指的是這樣一個數(shù)列:0、1、1、2、3、5、8、13、21、34... 即從0和1開始,之后的斐波那契數(shù)列系數(shù)就由之前的兩數(shù)相加。 解法一:常規(guī)解法 def fib(n): # 0,1 不做處理 if n == 0 or n == 1: return n # 前一個 和 前兩個數(shù)的和 return fib(n - 1) + fib(n - 2)
# 生成前20個數(shù)列 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: # 通過生成器來實現(xiàn) yield num1 num1, num2 = num1 + num2, num1 i += 1
# 前20個數(shù)列 result = fid(20) print([i for i in result])
|