利用Python實現斐波那契數列的方法例項
阿新 • • 發佈:2020-07-28
今天我們來使用Python實現遞迴演算法求指定位數的斐波那契數列
首先我們得知道斐波那契數列是什麼?
- 斐波那契數列又叫兔子數列
- 斐波那契數列就是一個數列從第三項開始第三項的值是第一項和第二項的和依次類推
其次我們再來看遞迴演算法是什麼?
遞迴就是如果函式(子程式)包含了對其自身的呼叫,該函式就是遞迴的
話不多說上案例:
第一種方法:不使用遞迴演算法
#首先定義一個新的列表來儲存最後的結果 new_list = [] # 然後讓使用者輸入指定位數 my_put = int(input("請輸入使用遞迴演算法求指定位數的斐波那契數列的位數: ")) # 利用for迴圈來遍歷陣列 for idx in range(my_put): # 利用if判斷第使得第一位和第二位都為1 if idx == 0: new_list.append(1) elif idx == 1: new_list.append(1) # 第三次的時候 當idx等於二的時候 然後第三項的話 應該的是第一項和第二項的和第一項的索引是0 第二項的索引是1 #但是上面if判斷以後 下面從idx為二的時候開始 # 所以應該是索引為idx-2和索引為idx-1的相加得出第三項 else: new_list.append(new_list[idx - 2] + new_list[idx - 1]) # 最後輸出最後的數列 print(new_list)
第二種方法:使用遞迴演算法
def get_num(n): # 獲取斐波拉契數列中第n個數字的值 if n == 1 or n == 2: return 1 return get_num(n - 1) + get_num(n - 2) # 把獲取的斐波拉契數字存放到列表中 nums = [] for i in range(1,9): nums.append(get_num(i)) # get_num獲得一個斐波拉契數字 print(nums)
兩種方法最後的執行結果都為:
請輸入使用遞迴演算法求指定位數的斐波那契數列的位數: 9
[1,1,2,3,5,8,13,21,34]
總結
到此這篇關於利用Python實現斐波那契數列的文章就介紹到這了,更多相關Python實現斐波那契數列內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!