Python中斐波那契數列的賦值邏輯
阿新 • • 發佈:2018-12-21
斐波那契數列
斐波那契數列又稱費氏數列,是數學家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)