python如何實現斐波那契數列
python實現斐波那契數列
利用for循環(huán)來實現
核心:python列表中可以用-1,-2來索引和訪問倒數第一個數和倒數第二個數。
fibs = [1,2]
for i in range(8):
fibs.append(fibs[-2] + fibs[-1])
print(fibs)運行結果:

range中的參數代表此for循環(huán)的循環(huán)次數。
使用while循環(huán)來實現
i = 0
j = 1
while i<10000
print(i,end = ' ')
i,j = j,i+j運行結果:

i,j = j,i+j 是并列賦值,一開始竟然看成由逗號隔開的三個東西,然后想了好久,服了。
遞歸
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=' ')遞歸函數里面的話得到的只是你輸入個數的那個最大的斐波那契數,輸出的話是需要一個一個輸出的,就是用for循環(huán)輸出。
python編寫函數求斐波拉契數列(0、1、1、2、3、5、8、..)并求用戶輸入的前x項之和
什么是斐波那契數列
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家萊昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”
指的是這樣一個數列:
0、1、1、2、3、5、8、13、21、34、……
在數學上,斐波那契數列以如下被以遞推的方法定義:
F(1)=1 F(2)=1 F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
斐波那契數列規(guī)律
除了第一項和第二項外,從第三項開始,每一項都等于前兩項之和
斐波那契數列的代碼實現
用Python編寫函數求斐波拉契數列(0、1、1、2、3、5、8、…)并根據用戶輸入的前x項進行求和
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('請輸入斐波那契數列的長度:'))
if x <= 0:
print('長度輸入不合法!')
continue
else:
sum = 0
list = fib(x) # 調用前面寫的fib函數
print('前{}項的斐波那契數列是:'.format(x))
for j in range(0,x):
print(list[j],end=' ')
sum = sum + list[j] # 求和
print ('\n')
print('前{}項的斐波那契數列之和是:\n{}'.format(x,sum))
break
except ValueError:
print ('長度輸入不合法!')
continue執(zhí)行結果:
請輸入斐波那契數列的長度:20
前20項的斐波那契數列是:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181前20項的斐波那契數列之和是:
10945
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python第三方模塊xmltodict庫優(yōu)雅處理xml格式為json
這篇文章主要為大家介紹了python第三方模塊xmltodict庫優(yōu)雅處理xml格式為json實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01
Python中Timedelta轉換為Int或Float方式
這篇文章主要介紹了Python中Timedelta轉換為Int或Float方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

