有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
这个跟斐波那契很像,我使用递归来实现。
每头牛从第四个年头开始生小牛。
就是说1、2、3、4年,母牛的数量和年份是相同的。
n<=4
第五年开始会多一头小牛,是第二年出生的小牛生的,
第六年开始会多三头小牛,是第二年出生的小牛和第三年出生的小牛生的,
年份 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
母牛的数量 | 1 | 2 | 3 | 4 | 6 | 9 | 13 | 19 |
表格一列是不是就看出规律了。
int feel(int n)
{
if (n <= 4)return n;
else return feel(n - 1) + feel(n - 3);
}
int main()
{
int n;
printf("请输入年份:");
while (scanf("%d", &n) && n)
printf("母牛的数量是 %d\n", feel(n));
return 0;
}