母牛的故事

题目描述:

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

题解:

我们先列出一个表格,把每一年对应的母牛数量写出来。

第 n年: 1 2 3 4 5 6 7 8
f[n] 头牛: 1 2 3 4 6 9 13 19

先看第 4 年,对应有 4 头母牛,4 = 3+1;
再看第 5 年,对应有 6 头母牛,6 = 4+2;
最后看第 6 年,对应有 9 头母牛,9 = 6+3;

没错,是有规律的,该年母牛的数量就是一年前的数量再加上三年前的数量,

用公式表示就是 f[n] = f[n-1] + f[n-3]

#include<iostream>
using namespace std;
int main()
{
    int n, i;
    int f[55] = { 0,1,2,3 };  //f[0]=0,f[1]=1,f[2]=2,f[3]=3
    for (i = 4; i < 55; i++)
        f[i] = f[i - 1] + f[i - 3];
    while (cin >> n && n != 0)  //输入 n 的值,且 n 不等于0,则进入,否则退出
    {
        cout << f[n] << endl;
    }
    return 0;
}
不一样的烟火
原文地址:https://www.cnblogs.com/cstdio1/p/10902901.html