# 輸出小於n的斐波那契數列
deffib1
(n):
list1 =
a =0 b =
1while ba,b = b,a+b
return list1
# 輸出n個斐波那契數列
deffib2
(n):
list2=
i,num1,num2=1,
0,1# i, num1, num2 = 1,1, 1
while i<=n:
num1,num2 = num2,num1+num2
i+=1return list2
# 使用生成器生成n個斐波那契數列
deffib5
(n):
i,num1,num2 =1,
0,1while i<=n:
yield num2
num1,num2=num2,num1+num2
i=i+
1# 輸出n個,使用列表搞定
deffib3
(n):
list3 =
for i in
range
(n):
if i==
0or i==1:
1)else:1
]+list3[i-2]
)return list3
# 使用遞迴,輸出第n個斐波那契額數列的數
deffib4
(n):
list4 =
if n<0:
print
("n必須是正整數"
)elif n ==
1or n ==2:
return
1else
:return fib4(n-1)
+fib4(n-2)
# 最佳方案,生成器的公升級版,生成器的返回值是個物件,需要用list()轉換成list列印,或者for迴圈也可以
deffib6
(n):
a,b=0,
1while n>0:
a,b=b,a+b
n-=1yield a
if __name__==
"__main__"
:print
(fib1(10)
)print
(fib2(10)
)print
(fib3(10)
)print
(fib4(10)
)print
(list
(fib5(10)
))print
(list
(fib6(10)
))
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
python 斐波那契數列
用python寫斐波那契數列當然大家都寫的出來。當時如果用一行 寫呢。本來沒有打算用一行 寫的。後來看到有用一行 寫階乘的。reduce lambda x,y x y,i for i in range 1,n 1 當然在這之前需要 from functools import 好吧,如果你願意,就算兩...
python斐波那契數列
學習過python基礎語法,我們嘗試做乙個簡單的斐波那契數列。斐波納契數列 兩個元素的總和確定了下乙個數 a,b 0,1 while b 10 print b a,b b,a b執行以上程式,輸出 112 358end關鍵字 關鍵字end可以用於將結果輸出到同一行,或者在輸出的末尾新增不同的字元,例...