斐波那契數列你們都很熟悉吧,我們在高中學數學的時候,老師會講這個定律以及算法,其實數據結構和數學息息相關,數學思惟好的每每邏輯思惟就比較好,今天小猿圈帶你們學習一下python的斐波那契數列的實現。python
程序分析:斐波那契數列(Fibonacci sequence),又稱黃金分割數列,指的是這樣一個數列:0、一、一、二、三、五、八、1三、2一、3四、……算法
在數學上,費波那契數列是以遞歸的方法來定義:數據結構
F0 = 0 (n=0)app
F1 = 1 (n=1)ide
Fn = F[n-1]+ F[n-2](n=>2)學習
程序源代碼:idea
方法一:code
#!/usr/bin/python # -*- coding: UTF-8 -*- # 斐波那契數列 def fib(n): a, b = 1, 1 for i in range(n-1): a, b = b, a+b return a # 輸出了第10個斐波那契數列 print fib(10)
方法二:遞歸
#!/usr/bin/python # -*- coding: UTF-8 -*- # 斐波那契數列 # 使用遞歸 def fib(n): if n == 1 or n == 2: return 1 return fib(n - 1) + fib(n - 2) # 輸出了第10個斐波那契數列 print fib(10) 以上實例輸出了第10個斐波那契數列,結果爲: 55
方法三:ci
若是你須要輸出指定個數的斐波那契數列,能夠使用如下代碼:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 斐波那契數列 def fib(n): if n == 1: return [1] if n == 2: return [1, 1] fibs = [1, 1] for i in range(2, n): fibs.append(fibs[-1] + fibs[-2]) return fibs # 輸出前10個斐波那契數列 print fib(10) 以上程序運行輸出結果爲: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
你們對斐波那契數列python的實現學會了吧,也是很簡單的,代碼也是優雅的吧,斐波那契數列用到的地方還蠻多的,你們平時能夠多看一下相似於這種算法的結構,讓本身的腦子靈光的轉起來,只要這樣纔能有很好的idea,能夠去小猿圈瞭解更多的算法,你們加油!