[递归]母牛的故事 |
题目描述 |
题目描述 |
输入 |
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。 n=0表示输入数据的结束,不做处理。 |
输出 |
对于每个测试实例,输出在第n年的时候母牛的数量。 每个输出占一行。 |
样例输入 |
2 4 5 0 |
样例输出 |
2 4 6 |
#include <stdio.h>
int func(int n); //递归函数,计算第n年小牛的数量
int main() {
int n, i = 0;
int num[55]; //存储n的值
scanf("%d",&n);
while(n!=0){ //当n!=0的时候一直输入
num[i]=n;
scanf(" %d",&n);
i++;
};
int m=i; //n有多少个
for(int j=0;j<m;j++){
int sum=func(num[j]); //调用递归函数
printf("%d\n",sum);
}
return 0;
}
int func(int n){
if (n<4){ //前四年分别为1,2,3,4
return n;
} else{
return func(n-1)+func(n-3); //年数大于4,F(n)=F(n-1)+F(n-3)
}
}