Python中斐波那契數列的賦值邏輯

2022-07-29 20:09:12 字數 1118 閱讀 3551

斐波那契數列又稱費氏數列,是數學家leonardoda fibonacci發現的。指的是0、1、1、2、3、5、8、13、21、34、······這樣的數列。即從0和1開始,第n項等於第n-1項與n-2項之和。需要注意的是0是第0項,而不是第一項。

斐波那契數列的規律其實就是將前兩項的值相加並得到當前項的值,用for迴圈和while迴圈都能實現這個邏輯,如下圖:

n代表斐波那契數列(以下簡稱數列)中的當前項的值,這個值要儲存起來在下乙個迴圈中與當前迴圈中的上一項相加,也就是下乙個迴圈中的前二項,由於斐波那契數列是從0和1開始的,所以在迴圈開始時要初始化a和b的值,將a作為第0項,b作為第一項。在第一次迴圈中n=a+b=1,這樣n中就儲存了第二項的值,然後將這個值賦值給b,使b中儲存第二項的數列值,也就是當前項的數列值。另外,更重要的一點是,在n賦值給b之前,b一定要將其在當前迴圈中的值先賦值給a,然後a的值就是下次迴圈中的第前二項的值。在某次迴圈中,n始終代表的是數列中當前項的值,b的最終值也是當前項的值,但會留在下一次迴圈中作為下一次迴圈的前一項的值使用,而a在本次迴圈中的最終值則是當前迴圈中b的初始值,也就是上一次迴圈的n的值,即當前迴圈的上乙個數列值,下一迴圈的前二項的值。依次類推,周而復始的計算出斐波那契數列。

簡單的實現:

#

列印出100以內的斐波那契數列

#while語句:

#a=int(0)

b=int(1)

n=int(0)

while n<=100:

n=a+b

a=bb=n

if n<100:

print

(n)#

#求斐波那契數列的第101項

a=int(0)

b=int(1)

s=int(0)

while s<=100:

n=a+b

a=bb=n

s=s+1

print(n)

lst = [0,1]

for i in range(100):

print(lst[101])

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