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

斐波那契數列

  斐波那契數列又稱費氏數列,是數學家Leonardoda Fibonacci發現的。指的是0、一、一、二、三、五、八、1三、2一、3四、······這樣的數列。即從0和1開始,第n項等於第n-1項與n-2項之和。須要注意的是0是第0項,而不是第一項。app

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

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

 

賦值原理:

  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的值,即當前循環的上一個數列值,下一循環的前二項的值。依次類推,周而復始的計算出斐波那契數列。code

  簡單的實現:blog

#打印出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)

 若是用list來實現就很簡單了:

lst = [0,1] for i in range(100): lst.append(lst[i]+lst[i+1]) print(lst[101])
相關文章
相關標籤/搜索