1013

来源:互联网 发布:北京哪里有mac专柜 编辑:程序博客网 时间:2024/05/01 06:39

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

思路:第一年有1头,第二年有两头,第三年有三头,第四年有四头,到了第四年情况就复杂了,不难发现,第n年等于第n-1年和第n-3的和。

感想:去年有一个15级的学妹问过我一个一模一样的问题,当时我也不会,后来没想到又碰到了这道题


#include<iostream>  

using namespace std;  
long long dp[50];  
int main()  
{  
    int n;  
    int flag = 4;  
    dp[1] = 1;  
    dp[2] = 2;  
    dp[3] = 3;  
    dp[4] = 4;  
    while (cin >> n&&n)  
    {  
        if (n <= flag)  
            cout << dp[n] << endl;  
        else  
        {  
            for (int i = flag + 1; i <= n; ++i)  
                dp[i] = dp[i - 1] + dp[i - 3];  
            cout << dp[n] << endl;  
        }  
    }  
    return 0;  
}  
0 0
原创粉丝点击