有这样一个题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?其实这个就是斐波拉契数列,因为从第三个月开始,兔子数量等于前两个月兔子数量之和。为什么呢?因为第N个月时,第N-2个月的兔子已经可以生小兔子了,第N-1个月的兔子就是现有大兔子的数量。现有大兔子数量+新生兔子宝宝=当前这个月拥有的兔子数量。 用递归或者不用斐波拉契数列都可以解决,但是递归的缺点就在于计算速度,大概36个月开始,递归要好几秒才能出结果,但是函数依旧很快。在对速度有要求的情况下,能用函数就不用递归。
网友评论