题解 | #统计每个月兔子的总数#
统计每个月兔子的总数
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; }