题解 | #统计每个月兔子的总数#

统计每个月兔子的总数

https://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395

#include <stdio.h>

int Rabit(int num)
{
    if(num ==2 || num==1){
        return 1;
    }   
    return Rabit(num-1)+ Rabit(num-2);
}
int main()
{
    int n = 0;
    scanf("%d",&n);
    int sum = Rabit(n);
    printf("%d\n",sum);
    return 0;
}

通过递归的方法来实现,下面说一下思路。
首先明确递归的结束条件,2个月和一个月时兔子的数量都返回1
那么n个月时兔子的数量为多少呢?为n-1个月时兔子的个数加上新生兔子的个数。
那么这个月的新生兔子个数是多少? 
 通过题目我们可以清楚兔子过2个月才能生小兔子。那么很明显n-2个月时的所有兔子在n个月时都能生小兔子。
n-1个月时的兔子中能生孩子的兔子也就是n-2个月时的兔子的数量,所以新生兔子数量就是n-2个月时兔子的数量。
由此我们的递归思路就很明显了。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 13:05
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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