1. 程式人生 > >Python中斐波那契數列的賦值邏輯

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

斐波那契數列

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

用Python中簡單的賦值語句實現斐波那契數列的賦值邏輯

  斐波那契數列的規律其實就是將前兩項的值相加並得到當前項的值,用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=b
    b=n
    if n<100:
        print(n)
#
#求斐波那契數列的第101項
a=int(0)
b=int(1)
s=int(0)
while s<=100:
    n=a+b
    a=b
    b=n
    s=s+1
print(n)