题目
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
输入 2 4 5 0(以0结尾)
输出 2 4 6
思路:
6 = 前一年剩下的4头牛+(第2年新产的母牛刚具有生育能力生下的1头+最早的母牛1头)
解题公式:f(n) = f(n-1) + f(n-3)
#include <stdio.h>
int cow(int n);
int main(void)
{
int n;
while (1)
{
scanf("%d",&n);
if (n == 0)
break;
else
printf("%d\n",cow(n));
}
return 0;
}
int cow(int n)
{
if (n < 4)
return n;
else
return cow(n - 1) + cow(n - 3);
}
#include<stdio.h>
int main()
{
int a[100];
int j;
int n;
do {
scanf("%d", &n);
if (n == 0)
break;
a[1] = 1;
a[2] = 2;
a[3] = 3;
for (j = 4; j <= n; j++)
{
a[j] = a[j - 1] + a[j - 3];
}
printf("%d\n", a[n]);
}while (n != 0);
return 0;
}