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

统计每个月兔子的总数

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

设置一个1*n矩阵,表示每个月份新生的兔子个数
对于1月份存在的兔子,从3月份开始每个月生一个兔子,即矩阵下标2至n-1为1
此后,3月份的新生兔子要生兔子,即从5月份开始新增3月份兔子的个数
即n月份的新生兔子要生兔子,只有从n+2之后的月份新增,换而言之n+2及其之后的月份兔子数目在其之前的基础上增加n月份的兔子数目
最后将矩阵加和即可
注意结果不要忘记初始的一只兔子
#include <stdio.h>

int main()
{
    int n;
    scanf("%d",&n);
    int num[n],i;
    memset(num,0,sizeof(num));
    for(i=2;i<n;i++) num[i]=1;
    int k=4;  //最早从第五个月开始新增
    while(k<n)
    {
        for(i=k;i<n;i++) num[i]=num[i]+num[k-2];
        k++;
    }
    int sum=0;
    for(i=0;i<n;i++) sum=sum+num[i];
    printf("%d",sum+1);
    return 0;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务