电子说
Fibonacci number是这样的数列:
f(0) = 0, f(1) = 1,
f(n) = f(n-1) + f(n-2) (n 》=2)
下面给出几种求解方法
1) 使用函数递归方法。
这个是最容易想到的方法
但是这个比较花时间,因为有很多重复计算(重复的函数调用)。
在我的电脑上,计算f(45)的值,用了10.256秒的时间。
2) 把计算的中间结果保存下来,避免重复计算。
用这种方法计算f(45),仅仅用了 0.000017秒的时间, 时间降低了百万倍!
3) 第二种方法,使用了较多的内存保存中间结果。还可以进一步减少内存的使用。
所需时间和 2)差不多。
4)不使用函数递归,使用迭代的方法
5)
6)
全部0条评论
快来发表一下你的评论吧 !