题目
输入
输出
样例输入
2
4
5
0
样例输出
2
4
6
问题分析
首先,我们可以列出前四年中每一年的母牛头数,因为只有在小母牛出生后第四年时才能生小母牛,所以从第n(n>=5)年开始,第n年母牛的数量=第n-1年的母牛数量+第n-3年的母牛数量。因为第n年的母牛数量等于前一年的数量加上能够生产的母牛数量。
C代码
#include<stdio.h>
main()
{
int a[55]={
1,1,2,3,4}; //a[0]不需要可以随便赋值
int n,i,j=0,p,b[100]={
0}; //数组b[100]用作记录要输出的母牛头数
for(i=5;i<=55;i++) //求出每一年的母牛数量
a[i]=a[i-1]+a[i-3];
scanf("%d",&n);
while(n!=0&&n<55) //0<n<55,当n=0时结束;
{
b[j]=a[n];
j=j+1;
p=j;
scanf("%d\n",&n);
}
for(p=0;p<j;p++) //输出所对应输入年数的母牛数量
printf("%d\n",b[p]);
}