面试算法题:有一对兔子,从出生后第3个月起每个月都生一对兔子


题目是网上找的
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?


关键思路:第n个月比第n-1个月多的是有生兔子能力的兔子个数,而有能力生育的兔子个数是n-2个月的兔子数(这些兔子在第三个月可以生育)。
所以fn=fn-1+fn-2
这是典型的Fibonacci
它的通项公式为:[(1+√5)/2]^n /√5 - [(1-√5)/2]^n /√5 【√5表示根号5】

直接计算这个公式即可。

如果不会计算,就去看看Fibonacci或者补习一下高数的数学归纳法。


代码略。

你可能感兴趣的:(java面试题目最优算法)