斐波那契数列(Fibonacci)的定义如下:
抽象为函数:
这种递归形式的定义容易误导人使用递归来实现,但是真的该使用递归吗?
每个递归调用都会触发另外2个递归调用,而这2个调用的任何一个又将触发2个递归调用,再接下去的调用也是如此。这样,冗余计算的数量增长的非常快。
当n=30时,等了一会,终于打印完了,时间主要花在打印上,但是也足以说明这个调用次数之多,总共调用了832039次,其中n为3的调用317811次。
斐波那契数列(Fibonacci)的定义如下:
抽象为函数:
这种递归形式的定义容易误导人使用递归来实现,但是真的该使用递归吗?
每个递归调用都会触发另外2个递归调用,而这2个调用的任何一个又将触发2个递归调用,再接下去的调用也是如此。这样,冗余计算的数量增长的非常快。
当n=30时,等了一会,终于打印完了,时间主要花在打印上,但是也足以说明这个调用次数之多,总共调用了832039次,其中n为3的调用317811次。