2018-母牛的故事

描述:

 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
输入:
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
输出:对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。
input:
2
4
5
0
output:
2
4
6
 
分析:本题难点在每头小牛在第四年也生产一头小牛,我们可以列出1到8年的增长规律来得出递推式sum[n]=sum[n-1]+sum[n-3](n>=5),我们可以这样来理解这个递推式,从第5年开始,第二年的产的小牛也开始生产,也就是说第二年所有的牛在第5年都会生产,第四年存在的牛第五年也都在,但不是所有都会生产,所以sum[5]=sum[4]+sum[3]。
这样可以得出第n年的牛总数等于n-1年总数加上四年前即n-3年牛的总数。
 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     static int a[55];
 7     a[1] = 1;a[2] = 2;a[3] = 3;a[4] = 4;
 8     for (int i = 5;i < 55;i++)
 9         a[i] = a[i - 1] + a[i - 3];
10     int s;
11     while ((cin >> s) && (s != 0))
12         cout << a[s] << endl;
13     system("pause");
14     return 0;    
15 }
原文地址:https://www.cnblogs.com/wuyoucao/p/4814948.html