题解 | #不死神兔问题#

不死神兔问题

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;
}

全部评论

相关推荐

昨天 17:14
中北大学 Java
兄弟们是真是假
牛客46374834...:我在boss上投java岗从来没成功过
点赞 评论 收藏
分享
评论
10
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务