0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

算法:计算Fibonacci number的六个方法

如意 来源:CSDN 作者:CaspianSea 2020-06-22 17:27 次阅读

Fibonacci number是这样的数列:

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

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

下面给出几种求解方法

1) 使用函数递归方法。

算法:计算Fibonacci number的六个方法

这个是最容易想到的方法

但是这个比较花时间,因为有很多重复计算(重复的函数调用)。

在我的电脑上,计算f(45)的值,用了10.256秒的时间。

2) 把计算的中间结果保存下来,避免重复计算。

算法:计算Fibonacci number的六个方法

用这种方法计算f(45),仅仅用了 0.000017秒的时间, 时间降低了百万倍!

3) 第二种方法,使用了较多的内存保存中间结果。还可以进一步减少内存的使用。

算法:计算Fibonacci number的六个方法

所需时间和 2)差不多。
4)不使用函数递归,使用迭代的方法

算法:计算Fibonacci number的六个方法


5)

算法:计算Fibonacci number的六个方法


6)

算法:计算Fibonacci number的六个方法

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4460

    浏览量

    90843
  • C语言
    +关注

    关注

    180

    文章

    7534

    浏览量

    129570
收藏 人收藏

    评论

    相关推荐

    求一六个管子的数码管封装

    求大神给六个管子的数码管原理图及其封装!!!请发到邮箱663948676@qq.com,就此谢过!!!!!!
    发表于 07-23 18:59

    如图,请问这种步进电机的六个引脚分别是什么意思?为什么要这么接?

    如图,请问这种步进电机的六个引脚分别是什么意思?为什么要这么接?
    发表于 11-06 17:27

    六个仿真器,想处理掉!

    本人有义隆,合泰。中颖,PIC等六个仿真器低价处理,另有20m三星示波器一部,LM324芯片6000,HT6222红外遥控芯片(COB)20000,稳压电源一台,一同处理,超低价优惠,感兴趣请留言。
    发表于 11-07 19:44

    10经典的C语言面试基础算法及代码

    算法是一程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手。本文包括了经典的Fibonacci数列、简易
    发表于 11-20 15:18

    关于六个自由度座椅的控制

    最近在参与一六个自由度座椅控制的课题,需要查阅哪些方面的相关书籍,有什么推荐吗?谢谢各位
    发表于 01-13 14:46

    nrf24l01自身有六个通道,这里的通道是什么意思,是频率的意思吗

    nrf24l01自身有六个通道,这里的通道是什么意思,是频率的意思吗是不是只能六个频率发,1频率接收?
    发表于 03-02 16:25

    电源电路中选用MOS管的六个方法

    可参考下文的“MOS管损耗的8组成部分”部分。  、耗散功率约束  器件稳态损耗功率PD,max应以器件最大工作结温度限制作为考量依据。如能够预先知道器件工作环境温度,则可以按如下方法估算出最大
    发表于 02-21 12:02

    六个带有WiFi模块的单片机跟一配置为AP模式的单片机通信,六个之间并不通信

    我得目的是让六个带有WiFi模块的单片机跟一配置为AP模式的单片机通信,六个之间并不通信这个过程绝不能涉及任何手机电脑路由器,不知道可不可以。想听听各位的的高见
    发表于 05-16 06:35

    10经典的C语言面试基础算法及代码

    1、计算Fibonacci数列Fibonacci数列又称斐波那契数列,又称黄金分割数列,指的是这样一数列:1、1、2、3、5、8、13、21。C语言实现的代码如下:/* Displa
    发表于 07-25 17:07

    如何将Altium Designer中六个圆孔内部变为空心的?

    Altium Designer 画PCB的时候,如下图所示,如何将六个圆孔内部变为空心的,本意是带六个洞洞的板子 求大神支招
    发表于 09-16 20:12

    关于10大C语言基础算法

    算法系列的第二篇,包括了经典的Fibonacci数列、简易计算器、回文检查、质数检查等算法。也许他们能在你的毕业设计或者面试中派上用场。1、计算
    发表于 04-29 14:30

    nrf24l01自身有六个通道是什么意思?

    nrf24l01自身有六个通道,这里的通道是什么意思,是频率的意思吗
    发表于 06-16 07:52

    nrf24l01自身有六个通道这里的通道是什么意思?

    nrf24l01自身有六个通道,这里的通道是什么意思,是频率的意思吗是不是只能六个频率发,1频率接收?
    发表于 06-18 09:00

    sd可以实现六个面对应六个不同文件夹sd音乐吗?

    想做一感应正方体音乐盒,通过三轴加速度计去感应六个面的变化,从而去读取sd不同文件夹的音乐,六个面对应六个不同文件夹sd音乐,而且文件夹里面的音乐是可以换的,我知道单独设置一
    发表于 08-12 22:09

    六个子目录的作用

    到的不同文件。建立CMSIS、Library、Listing、Output、Project、User六个子目录,如下图所示。下面来讲一下这六个子目录的作用。C
    发表于 08-04 06:51