【算法题】8.兔子问题

361 阅读1分钟

兔子问题

题目

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

解析

斐波那契数列
它是一个线性递归数列,F(1)=1F(2)=1,F(n)=F(n1)+F(n2)n3nNF(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*) 递归

复杂度分析

时间复杂度 O(2n)O( 2^n )

空间复杂度 O(n)O( n )

代码

int Fbi(int n){
    if(n<2)
        return n == 0?0:1;
    return Fbi(n-1)+Fbi(n-2);
}