问题描述:有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
问题分析:在这个问题中,第n年的总牛的数量是第n-3年的牛总数(这一年的新生牛)加上第n-1年的牛总数,比如,第五年的牛总数等于第二年的牛数加上第4年的牛总数,因为第二年的牛到第5年都可以生产一头新牛了,所以第二年的牛数就是第五年的新生牛的数量,第五年的牛总数就等于第四年加上新生牛数。构成了递归。
问题代码:
#include
int main()
{
int n;
while( scanf("%d",&n) != EOF && n>0 && n<55 )
{
int mature=1,a=0,b=0,c=0,sum=1;
for(int i=1;i
{
mature+=c;
c=b;
b=a;
a=mature;
sum=mature+a+b+c;
}
printf("%d\n",sum);
}
return 0;
}
问题结果: