python筆記 斐波那契數列實現方法

2021-10-08 04:02:45 字數 1345 閱讀 2605

# 輸出小於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可以用於將結果輸出到同一行,或者在輸出的末尾新增不同的字元,例...