母牛的故事(C语言网1004)
题目
**题目描述**
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。
请编程实现在第n年的时候,共有多少头母牛?
**输入格式**
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
**输出格式**
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
样例输入
2
4
5
0
样例输出
2
4
6
题解过程
观察规律
第四年数量=第一年数量+第三年数量······
第i年数量=第i-3年数量+第i-1年数量
题解代码
#include<stdio.h>
int main(){
int a[55];
a[1]=1;a[2]=2;a[3]=3;a[4]=4;
int i = 0, j, n;
int b[100]={0};
for(j = 5; j <= 55; j++)
{
a[j] = a[j-1] + a[j-3]; //递归思想
}
scanf("%d", &n);
while(n!=0&&n<=55)
{
b[i] = a[n]; //把a[n]的值依此赋予b数组
i++; //记录赋予的次数
scanf("%d", &n);
}
for(j = 0; j < i; j++)
{
printf("%d\n", b[j]);
}
return 0;
}