问题描述
有一对夫妇买了一头母牛,它从第2年起每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
输入
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0< n< 55),n的含义如题目中描述。 n=0表示输入数据的结束,不做处理。
输出
对于每个测试实例,输出在第n年的时候母牛的数量。 每个输出占一行。
Sample
input
- 2
- 4
- 5
- 0
output
- 2
- 4
- 6
解一解 (=′ω`=)
首先我来画个图生的牛同那个对应的年数来记:
一 1
二 1 2
三 1 2 3
四 1 2 3 4
五 1 2 3 4 5 5
六 1 2 3 4 5 5 6 6 6
。。。。。。(子子孙孙无穷尽也)
好了,我们在图上找找规律
(此处省略。。。。。。)
示例程序
- 1 #include <stdio.h>
- 2
- 3 int main()
- 4 {
- 5 int n;
- 6 int bo(int);
- 7 while(1)
- 8 {
- 9 scanf("%d",&n);
- 10 if (n == 0)
- 11 break;
- 12 else
- 13 printf("%d\n",bo(n));
- 14 }
- 15 return 0;
- 16 }
- 17 int bo(int n)
- 18 {
- 19 if(n == 1)
- 20 return (1);
- 21 if(n == 2)
- 22 return (2);
- 23 if(n == 3)
- 24 return (3);
- 25 if(n == 4)
- 26 return (4);
- 27 if(n >= 5)
- 28 return (bo(n-1)+bo(n-3));
- 29 }
萌新菜鸟讲解就到这