python如何實(shí)現(xiàn)斐波那契數(shù)列
python實(shí)現(xiàn)斐波那契數(shù)列
利用for循環(huán)來實(shí)現(xiàn)
核心:python列表中可以用-1,-2來索引和訪問倒數(shù)第一個(gè)數(shù)和倒數(shù)第二個(gè)數(shù)。
fibs = [1,2] for i in range(8): fibs.append(fibs[-2] + fibs[-1]) print(fibs)
運(yùn)行結(jié)果:
range中的參數(shù)代表此for循環(huán)的循環(huán)次數(shù)。
使用while循環(huán)來實(shí)現(xiàn)
i = 0 j = 1 while i<10000 print(i,end = ' ') i,j = j,i+j
運(yùn)行結(jié)果:
i,j = j,i+j 是并列賦值,一開始竟然看成由逗號隔開的三個(gè)東西,然后想了好久,服了。
遞歸
def fibs(n): if n < 1: return -1 elif n==1 or n==2: return 1 else: return fibs(n-1) + fibs(n-2) num = int(input('input num:')) for i in range(1,num+1): print(fibs(i),end=' ')
遞歸函數(shù)里面的話得到的只是你輸入個(gè)數(shù)的那個(gè)最大的斐波那契數(shù),輸出的話是需要一個(gè)一個(gè)輸出的,就是用for循環(huán)輸出。
python編寫函數(shù)求斐波拉契數(shù)列(0、1、1、2、3、5、8、..)并求用戶輸入的前x項(xiàng)之和
什么是斐波那契數(shù)列
斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列、因數(shù)學(xué)家萊昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”
指的是這樣一個(gè)數(shù)列:
0、1、1、2、3、5、8、13、21、34、……
在數(shù)學(xué)上,斐波那契數(shù)列以如下被以遞推的方法定義:
F(1)=1 F(2)=1 F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
斐波那契數(shù)列規(guī)律
除了第一項(xiàng)和第二項(xiàng)外,從第三項(xiàng)開始,每一項(xiàng)都等于前兩項(xiàng)之和
斐波那契數(shù)列的代碼實(shí)現(xiàn)
用Python編寫函數(shù)求斐波拉契數(shù)列(0、1、1、2、3、5、8、…)并根據(jù)用戶輸入的前x項(xiàng)進(jìn)行求和
def fib(n): list = [0,1] a,b = 0,1 for i in range(2,n+1): a,b=b,a+b list.append(b) return list while True: try: x = int(input('請輸入斐波那契數(shù)列的長度:')) if x <= 0: print('長度輸入不合法!') continue else: sum = 0 list = fib(x) # 調(diào)用前面寫的fib函數(shù) print('前{}項(xiàng)的斐波那契數(shù)列是:'.format(x)) for j in range(0,x): print(list[j],end=' ') sum = sum + list[j] # 求和 print ('\n') print('前{}項(xiàng)的斐波那契數(shù)列之和是:\n{}'.format(x,sum)) break except ValueError: print ('長度輸入不合法!') continue
執(zhí)行結(jié)果:
請輸入斐波那契數(shù)列的長度:20
前20項(xiàng)的斐波那契數(shù)列是:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181前20項(xiàng)的斐波那契數(shù)列之和是:
10945
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
PyQt教程之自定義組件Switch?Button的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了PyQt中如何實(shí)現(xiàn)自定義組件Switch?Button,文中的示例代碼簡潔易懂,具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下2023-05-05利用Django提供的ModelForm增刪改數(shù)據(jù)的方法
這篇文章主要介紹了利用Django提供的ModelForm增刪改數(shù)據(jù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01python設(shè)定并獲取socket超時(shí)時(shí)間的方法
今天小編就為大家分享一篇python設(shè)定并獲取socket超時(shí)時(shí)間的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01Python中的pydot庫實(shí)現(xiàn)復(fù)雜圖形使用教程
pydot是一個(gè)用于生成和操作DOT圖文件的Python庫,封裝了Graphviz的功能,適用于可視化圖結(jié)構(gòu),它可以生成依賴圖、流程圖、樹形圖等,并支持復(fù)雜的圖形樣式、網(wǎng)絡(luò)數(shù)據(jù)集成、循環(huán)圖、輸出其他格式、處理大規(guī)模圖數(shù)據(jù)的等等2025-01-01圖文詳解Python中最神秘的一個(gè)魔法函數(shù)
Python進(jìn)階之路我覺得有兩個(gè)東西一定要了解,一個(gè)是魔法函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python中最神秘的一個(gè)魔法函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12Python+wxPython實(shí)現(xiàn)個(gè)人鏈接收藏夾
這篇文章主要介紹了如何使用wxPython和XML數(shù)據(jù)源創(chuàng)建一個(gè)具有按鈕和Web視圖的應(yīng)用程序窗口,以便輕松管理和訪問各種網(wǎng)頁鏈接,感興趣的可以了解下2023-08-08python第三方模塊xmltodict庫優(yōu)雅處理xml格式為json
這篇文章主要為大家介紹了python第三方模塊xmltodict庫優(yōu)雅處理xml格式為json實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Python中Timedelta轉(zhuǎn)換為Int或Float方式
這篇文章主要介紹了Python中Timedelta轉(zhuǎn)換為Int或Float方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07