母牛的故事

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

Input输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。 
n=0表示输入数据的结束,不做处理。Output对于每个测试实例,输出在第n年的时候母牛的数量。 
每个输出占一行。

Sample Input

2
4
5
0

Sample Output

2
4
6

本题关键点在于母牛和小牛的增长规律。

1.母牛数量在前三年不变,但第四年开始,其数量可知为去年母牛数量加上三年前小牛数量;

2.小牛数量在前三年每年增加一,第四年开始,其数量可知为去年小牛数量加上去年母牛数量再减去三年前母牛数量;

本题至此可用递归解决.

#include<stdio.h>
int small(int n);
int big(int n);
int main()
{
int n;
while(scanf("%d",&n)&&n!=0)
printf("%d ",small(n)+big(n)-1);
return 0;
}
int big(int n)
{
int result1;
if(n<4)
result1=1;
else
result1=big(n-1)+big(n-3);
return result1;
}
int small(int n)
{
int result2;
if(n<4)
result2=n;
else
result2=big(n-1)+small(n-1)-big(n-3);
return result2;
}

原文地址:https://www.cnblogs.com/hear0/p/10424434.html