题解 | #不死神兔问题#

不死神兔问题

https://www.nowcoder.com/practice/9fecec9c776c436b8a03ba0684ac76a7

这个思路不考虑斐波那契数列的数学规律

单从题目本身出发 每对兔子都会从第三个月开始生出下一代的兔子

所以对于当前这一对兔子来说 n>=3时 他能生出的兔子数量就是n-2 再加上自身+1

那么从第三个月开始出生的每一对兔子 都要被当作一对新的兔子去再次调用此函数进行计算

所以就是3~n月 循环累加getSum

(这算不算是个面向对象的思路 小兔子就是新的对象)

int getSum(int n) {

    // write your code here......
    if (n < 3) {
        return 1;
    }
    
    int sum = 1;	//当前这一对兔子
    for (int i = n - 2; i > 0; i--) {
        sum += getSum(i);	//对每一对新出生的兔子都要计算getSum
    }
    return sum;
}

全部评论

相关推荐

牛客389580366号:读书的意义在于提升自己和他人吧,“阶级意识”是读书过程中的产出,“跨越阶级”是通过读书获得的能力
点赞 评论 收藏
分享
评论
9
收藏
分享
牛客网
牛客企业服务