0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

算法:計算Fibonacci number的六個方法

如意 ? 來源:CSDN ? 作者:CaspianSea ? 2020-06-22 17:27 ? 次閱讀

Fibonacci number是這樣的數(shù)列:

f(0) = 0, f(1) = 1,

f(n) = f(n-1) + f(n-2) (n 》=2)

下面給出幾種求解方法

1) 使用函數(shù)遞歸方法。

算法:計算Fibonacci number的六個方法

這個是最容易想到的方法

但是這個比較花時間,因為有很多重復(fù)計算(重復(fù)的函數(shù)調(diào)用)。

在我的電腦上,計算f(45)的值,用了10.256秒的時間。

2) 把計算的中間結(jié)果保存下來,避免重復(fù)計算。

算法:計算Fibonacci number的六個方法

用這種方法計算f(45),僅僅用了 0.000017秒的時間, 時間降低了百萬倍!

3) 第二種方法,使用了較多的內(nèi)存保存中間結(jié)果。還可以進一步減少內(nèi)存的使用。

算法:計算Fibonacci number的六個方法

所需時間和 2)差不多。
4)不使用函數(shù)遞歸,使用迭代的方法

算法:計算Fibonacci number的六個方法


5)

算法:計算Fibonacci number的六個方法


6)

算法:計算Fibonacci number的六個方法

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4646

    瀏覽量

    93747
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7618

    瀏覽量

    138702
收藏 人收藏

    評論

    相關(guān)推薦

    10經(jīng)典的C語言面試基礎(chǔ)算法及代碼

    算法是一程序和軟件的靈魂,作為一名優(yōu)秀的程序員,只有對一些基礎(chǔ)的算法有著全面的掌握,才會在設(shè)計程序和編寫代碼的過程中顯得得心應(yīng)手。本文包括了經(jīng)典的Fibonacci數(shù)列、簡易
    發(fā)表于 11-20 15:18

    關(guān)于六個自由度座椅的控制

    最近在參與一六個自由度座椅控制的課題,需要查閱哪些方面的相關(guān)書籍,有什么推薦嗎?謝謝各位
    發(fā)表于 01-13 14:46

    六個帶有WiFi模塊的單片機跟一配置為AP模式的單片機通信,六個之間并不通信

    我得目的是讓六個帶有WiFi模塊的單片機跟一配置為AP模式的單片機通信,六個之間并不通信這個過程絕不能涉及任何手機電腦路由器,不知道可不可以。想聽聽各位的的高見
    發(fā)表于 05-16 06:35

    10經(jīng)典的C語言面試基礎(chǔ)算法及代碼

    1、計算Fibonacci數(shù)列Fibonacci數(shù)列又稱斐波那契數(shù)列,又稱黃金分割數(shù)列,指的是這樣一數(shù)列:1、1、2、3、5、8、13、21。C語言實現(xiàn)的代碼如下:/* Displa
    發(fā)表于 07-25 17:07

    關(guān)于10大C語言基礎(chǔ)算法

    算法系列的第二篇,包括了經(jīng)典的Fibonacci數(shù)列、簡易計算器、回文檢查、質(zhì)數(shù)檢查等算法。也許他們能在你的畢業(yè)設(shè)計或者面試中派上用場。1、計算
    發(fā)表于 04-29 14:30

    sd可以實現(xiàn)六個面對應(yīng)六個不同文件夾sd音樂嗎?

    想做一感應(yīng)正方體音樂盒,通過三軸加速度計去感應(yīng)六個面的變化,從而去讀取sd不同文件夾的音樂,六個面對應(yīng)六個不同文件夾sd音樂,而且文件夾里面的音樂是可以換的,我知道單獨設(shè)置一
    發(fā)表于 08-12 22:09

    六個子目錄的作用

    到的不同文件。建立CMSIS、Library、Listing、Output、Project、User六個子目錄,如下圖所示。下面來講一下這六個子目錄的作用。C
    發(fā)表于 08-04 06:51

    三相吹風(fēng)機六個引出端子接線方法電路圖

    三相吹風(fēng)機六個引出端子接線方法電路圖
    發(fā)表于 12-02 21:52 ?4411次閱讀
    三相吹風(fēng)機<b class='flag-5'>六個</b>引出端子接線<b class='flag-5'>方法</b>電路圖

    六個電視游戲電路

    六個電視游戲電路
    發(fā)表于 01-17 22:52 ?784次閱讀
    <b class='flag-5'>六個</b>電視游戲電路

    六個有關(guān)RoHS的檢測方法標(biāo)準(zhǔn)

    國家質(zhì)量監(jiān)督檢驗檢疫總局最近頒布了六個有關(guān)RoHS的檢測方法標(biāo)準(zhǔn),這六個標(biāo)準(zhǔn)是: 1. 《電子電氣產(chǎn)品中
    發(fā)表于 08-12 09:04 ?1348次閱讀

    六個數(shù)碼管輪流顯示數(shù)字

    六個數(shù)碼管輪流顯示數(shù)字。
    發(fā)表于 05-11 14:33 ?4次下載

    PCB設(shè)計的六個檢查階段

    為了保證PCB設(shè)計的準(zhǔn)確性,整個PCB設(shè)計過程中需要進行多次檢查,接下來為大家介紹PCB設(shè)計的六個檢查階段。
    的頭像 發(fā)表于 05-15 15:51 ?3795次閱讀

    PROTEL DXP的六個實驗指導(dǎo)教程

    本文檔的主要內(nèi)容詳細介紹的是PROTEL DXP的六個實驗指導(dǎo)教程包括了:實驗一 初步使用Protel DXP 系統(tǒng),實驗二 繪制A/D轉(zhuǎn)換電路原理圖,實驗三 音樂閃光燈電路設(shè)計——新建元件庫,實驗
    發(fā)表于 10-29 15:19 ?11次下載
    PROTEL DXP的<b class='flag-5'>六個</b>實驗指導(dǎo)教程

    汽車電源設(shè)計的六個基本原則

    電子發(fā)燒友網(wǎng)站提供《汽車電源設(shè)計的六個基本原則.doc》資料免費下載
    發(fā)表于 11-13 14:44 ?0次下載
    汽車電源設(shè)計的<b class='flag-5'>六個</b>基本原則

    decimal和number的區(qū)別

    的數(shù)據(jù)類型。Number數(shù)據(jù)類型可以包括整數(shù)、浮點數(shù)、復(fù)數(shù)等等。在不同的編程語言和環(huán)境中,Number的實現(xiàn)方式和支持的操作可能會有所不同。 Decimal是Number的一具體實現(xiàn)
    的頭像 發(fā)表于 11-30 10:47 ?3587次閱讀