国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python以列表返回斐波那契數(shù)列

這篇具有很好參考價值的文章主要介紹了Python以列表返回斐波那契數(shù)列。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

這是一次上機(jī)練習(xí)題,其實很簡單,但卻給我難住了??傆X得我的解法很繁瑣,期待最優(yōu)解。

通過這道題,我也發(fā)現(xiàn)了自己在python基礎(chǔ)上存在著不足,本篇文章來討論這道題的最優(yōu)解,并且復(fù)習(xí)一下python中列表的基礎(chǔ)知識。

題目:

計算Fibonacci數(shù)

實現(xiàn)一個計算Fibonacci數(shù)的簡單函數(shù),并利用其實現(xiàn):輸入一個正整數(shù)n(0<n≤100000),輸出小于n的所有Fibonacci數(shù)。所謂Fibonacci數(shù)列就是滿足任一項數(shù)字是前兩項的和(最開始兩項均定義為1)的數(shù)列,例如:1,1,2,3,5,8,13,21,…。函數(shù)fib(n)用列表返回[1, n]中的所有Fibonacci數(shù)。函數(shù)接口定義:def fib(n)其中n是用戶傳入的參數(shù)。

裁判測試程序樣例:

/* 請在這里填寫答案 */

n=int(input())

fiblist=fib(n)

print(fiblist)

輸入樣例:

20

輸出樣例:

[1, 1, 2, 3, 5, 8, 13]

解法:?

# -*- codeing = utf-8 -*-
# @Time : 2022/11/23 20:09
# @Author : 可樂不加糖
# @File : Fibonacci.py
# @Software: PyCharm
'''
解題思路:題目中n表示斐波那契數(shù)的最大值,我先把n當(dāng)作輸出斐波那契數(shù)的個數(shù),
        將輸出的斐波那契數(shù)存放到列表list1中,然后再將列表list1中的元素
        取出來,一一與n作比較,將小于n的元素存放到列表list2中,返回list2
        即得到所有小于n的斐波那契數(shù)。
'''
def fib(n):
    list1 = [1]
    list2 = []
    if n == 1 :
        return list1
    if n == 2 :
        list1.append(1)
        return list1
    if n >= 3 :
        list1.append(1)
        for i in range(2, n):
            list1.append(list1[i - 1] + list1[i - 2])
        # for循環(huán)遍歷list1中的元素,一一與n作比較
        for i in list1:
            if i < n: # 如果list1中的元素小于n,就添加到list2中
                list2.append(i)
        return list2
n = int(input()) # 用戶輸入一個正整數(shù)
fiblist = fib(n)
print(fiblist)

輸出樣例:?

Python以列表返回斐波那契數(shù)列

?通過代碼可以發(fā)現(xiàn),我用了兩個列表。第一個列表存放n個斐波那契數(shù),第二個列表存放小于n

的斐波那契數(shù)。做這個題的時候,我一直卡在列表的遍歷上,將根據(jù)元素遍歷和根據(jù)索引遍歷傻傻分不清,導(dǎo)致運(yùn)行報錯。

所以,有必要在復(fù)習(xí)一下列表的遍歷。

1.while循環(huán)遍歷列表

list1 = [1, 3, 5, 'kk']
i = 0
while i < len(list1):
    print(list1[i])
    i += 1

2.for循環(huán)根據(jù)元素直接遍歷列表

list1 = [1, 3, 5, 'kk']
for i in list1:
    print(i)

3.for循環(huán)根據(jù)索引遍歷列表

list1 = [1, 3, 5, 'kk']
for i in range(len(list1)):
    print(i, list1[i])
# 運(yùn)行結(jié)果:
    '''
    0 1
    1 3
    2 5
    3 kk
    '''

詳解:?

list1 = [1, 3, 5, 'kk']
l = len(list1) # 獲取列表的長度/獲取列表中元素個數(shù)
print(l)
i = range(l) # 根據(jù)元素的個數(shù),生成一個包含n個元素的整數(shù)序列,這里可以認(rèn)為索引列表
print(i)
# 遍歷索引列表,獲取到每一個索引,在根據(jù)索引值來獲取指定的元素
for j in i:
    print(j, list1[j])

Python以列表返回斐波那契數(shù)列?

?文章來源地址http://www.zghlxwxcb.cn/news/detail-477950.html

4.創(chuàng)建對應(yīng)的枚舉對象,再遍歷枚舉對象

enumerate()是python的內(nèi)置函數(shù),在字典上是枚舉、列舉的意思。對于一個可迭代的或可遍歷的對象,enumerate將其組成一個索引序列,利用它可以同時獲得索引和值。

list1 = [1, 3, 5, 'kk']
for i in enumerate(list1):
    print(i)
# 運(yùn)行結(jié)果:
'''
(0, 1)
(1, 3)
(2, 5)
(3, 'kk')
'''

5.使用迭代器遍歷列表

list1 = [1, 3, 5, 'kk']
# 通過循環(huán),訪問迭代器,獲取列表中的每個元素
for i in iter(list1):
    print(i)
# 運(yùn)行結(jié)果:
'''
1
3
5
kk
'''

?

?

?

?

到了這里,關(guān)于Python以列表返回斐波那契數(shù)列的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 斐波那契數(shù)列應(yīng)用2

    目錄 斐波那契數(shù)列應(yīng)用2 程序設(shè)計 程序分析? 系列文章 【問題描述】定義如下序列:f(1)=1,f(2)=1;f(n)=(A*f(n-1)+B*f(n-2))mod7? ? ?給定A和B,請你計算f(n)的值。 【輸

    2023年04月10日
    瀏覽(23)
  • c 斐波那契數(shù)列輸出

    在C語言中,我們可以通過遞歸或循環(huán)的方法來實現(xiàn)斐波那契數(shù)列的輸出。首先,我們需要明白斐波那契數(shù)列的定義:任一項數(shù)字是前兩項的和(最開始兩項均定義為1)。下面是具體的實現(xiàn)方式。 使用遞歸方法: #include stdio.h int main() { ? ? int m = 0, n = 1, sum; ? ? printf(\\\"請輸入

    2024年02月06日
    瀏覽(21)
  • 矩陣快速冪&斐波那契數(shù)列

    矩陣快速冪&斐波那契數(shù)列

    矩陣快速冪: 快速地求出斐波那契數(shù)列中的每一項 可以快速地求出斐波那契數(shù)列的前n項的和 首先我們來看如何快速地求出斐波那契數(shù)列的第n項 設(shè) F n = [ f n , f n + 1 ] F_n = [f_n,f_{n+1}] F n ? = [ f n ? , f n + 1 ? ] ,構(gòu)造這一個行向量,那么對于此,我們思考 F n F_n F n ? 乘一個

    2024年02月06日
    瀏覽(18)
  • 斐波那契數(shù)列verilog實現(xiàn)

    斐波那契數(shù)列verilog實現(xiàn)

    ?前言: ????????該題為睿思芯科筆試題,筆試時長20分鐘。 ????????用代碼實現(xiàn)斐波那契數(shù)列,代碼需要對對enable敏感,當(dāng)enable為高幾周期,sum在enble為高的下一周期輸出第幾個斐波那契數(shù),斐波那契數(shù)列的生成是后一個數(shù)字是前兩個數(shù)字之和,如下序列:0、1、1、

    2024年02月13日
    瀏覽(41)
  • 【動態(tài)規(guī)劃】斐波那契數(shù)列模型

    【動態(tài)規(guī)劃】斐波那契數(shù)列模型

    凍龜算法系列之斐波那契數(shù)列模型 動態(tài)規(guī)劃(英語:Dynamic programming,簡稱 DP) ,是一種在數(shù)學(xué)、管理科學(xué)、計算機(jī)科學(xué)、經(jīng)濟(jì)學(xué)和生物信息學(xué)中使用的,通過把原問題分解為相對簡單的子問題的方式求解復(fù)雜問題的方法。動態(tài)規(guī)劃常常適用于有重疊子問題和最優(yōu)子結(jié)構(gòu)性質(zhì)

    2024年02月09日
    瀏覽(21)
  • LeetCode刷題---斐波那契數(shù)列模型

    LeetCode刷題---斐波那契數(shù)列模型

    顧得泉: 個人主頁 個人專欄: 《Linux操作系統(tǒng)》??《C/C++》??《LeedCode刷題》 鍵盤敲爛,年薪百萬! 題目鏈接:1137. 第 N 個泰波那契數(shù)?? 泰波那契序列Tn定義如下: ????????T0=0,T1=1,T2= 1,且在n=0的條件下Tn+3= Tn+Tn+1t+Tn+2 ????????給你整數(shù)n,請返回第n個泰波那契數(shù)Tn的值

    2024年02月04日
    瀏覽(26)
  • 編程輸出斐波那契數(shù)列(簡單)

    目錄 題目 分析思路 數(shù)組法 迭代法 代碼 數(shù)組法: 迭代法: 編程輸出斐波那契數(shù)列 ????????斐波那契數(shù)列,又稱黃金分割數(shù)列,指的是這樣一個數(shù)列:0、1、1、2、3、5、8、13、21、34、…… ????????在數(shù)學(xué)上,斐波納契數(shù)列以如下被以遞歸的方法定義:F(0)=0,F(xiàn)(

    2024年02月10日
    瀏覽(24)
  • 斐波那契數(shù)列(C/C++)

    斐波那契數(shù)列(C/C++)

    目錄 背景介紹 解法1:非數(shù)組+非遞歸 解法2:數(shù)組+非遞歸 解法3:非數(shù)組+遞歸 解法4:數(shù)組+遞歸 斐波那契數(shù)列 ,又稱 黃金分割數(shù)列 ,指的是這樣一個數(shù)列:0、1、1、2、3、5、8、13、21、34、……在數(shù)學(xué)上,斐波納契數(shù)列以如下被以遞歸的方法定義:F(0)=0,F(xiàn)(1)=1,F(xiàn)(

    2024年02月06日
    瀏覽(21)
  • 【C/C++】斐波那契數(shù)列數(shù)列系列問題詳解

    【C/C++】斐波那契數(shù)列數(shù)列系列問題詳解

    ?? 博客主頁:??@披星戴月的賈維斯 ?? 歡迎關(guān)注:??點贊??收藏??留言 ??系列專欄:?? C++初階 ??勵志卓越可以成為你努力的動力,追求完美卻只會讓你身心俱疲。?? ??一起加油,去追尋、去成為更好的自己! ?? 斐波那契數(shù)列數(shù)列是我們學(xué)習(xí)遞歸的入門問題,是一

    2024年02月02日
    瀏覽(28)
  • 【算法學(xué)習(xí)】斐波那契數(shù)列模型-動態(tài)規(guī)劃

    【算法學(xué)習(xí)】斐波那契數(shù)列模型-動態(tài)規(guī)劃

    ? ? ? ? 我在算法學(xué)習(xí)過程中,針對斐波那契數(shù)列模型的動態(tài)規(guī)劃的例題進(jìn)行了一個整理,并且根據(jù)標(biāo)準(zhǔn)且可靠一點的動態(tài)規(guī)劃解題思路進(jìn)行求解類似的動歸問題,來達(dá)到學(xué)習(xí)和今后復(fù)習(xí)的必要。 ? ? ? ? 所謂的斐波那契數(shù)列模型,即當(dāng)前狀態(tài)的值等于前兩種狀態(tài)的值之和。

    2024年02月04日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包