斐波那契数指 1 1 2 3 5 8 13 21....前两个数是1 1,从第3个数开始该数等于前两个数之和。
1.用递归的方法求第n个斐波那契数
但我们发现有问题,当就算第45个斐波那契数时,特别耗费时间,许久没有结果。这是为什么呢?
我们发现fib函数在调用过程中有很多重复的计算,如当计算fib(35)时需要多次计算fib(3),导致时间缓慢。
但是用迭代的方法便不存在上述问题
总结:许多问题是用递归的方式进行解释,是因为它比非递归的形式更加清晰;
上述问题用迭代实现比递归实现效率更高,但代码可读性稍差;
当一个问题相当复杂,难以用迭代实现时,此时递归实现的简洁性便可补偿它所带来的运行是开销。