题目大意: 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛? 解题思路: 找出递推公式。假如当年为第n个年头,那么f[n] = f[n-1] + f[n-3].当前年等于去年的牛+3年前的牛,把去年的牛都当成不会生的,把3年前的牛都当成会生的即可。可画表: 4 4 1 4 2 1 4 3 2 1 4 4 3 2 1 1 4 4 4 3 2 2 1 1 1 代码:
#include
using namespace std;
const int MAX = 55;
int main(void)
{
    __int64 f[55];
    f[1] = 1;
    f[2] = 2;
    f[3] = 3;
    f[4] = 4;
    for(int i = 5; i < MAX; i++)
        f[i] = f[i-1] + f[i-3];
    int n;
    while(scanf("%d", &n), n)
    {
        printf("%d\n", f[n]);
    }
    return 0;
}
posted on 2012-02-15 10:22  cchun  阅读(130)  评论(0编辑  收藏  举报