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

电子说

1.2w人已加入

描述

Fibonacci number是这样的数列:

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

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

下面给出几种求解方法

1) 使用函数递归方法。

C语言

这个是最容易想到的方法

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

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

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

C语言

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

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

C语言

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

C语言


5)

C语言


6)

C语言

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分