hdu 2018 母牛的故事(動態規劃)

母牛的故事

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 66574    Accepted Submission(s): 33147


Problem Description
有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個年頭開始,每年年初也生一頭小母牛。請編程實現在第n年的時候,共有多少頭母牛?
 

Input
輸入數據由多個測試實例組成,每個測試實例佔一行,包括一個整數n(0<n<55),n的含義如題目中描述。
n=0表示輸入數據的結束,不做處理。
 

Output
對於每個測試實例,輸出在第n年的時候母牛的數量。
每個輸出佔一行。
 

Sample Input
2 4 5 0
 

Sample Output
2 4 6

解題思路:

        f[i]代表第i年母牛的數量,那麼f[i]=f[i-1]+f[i-3],意思是第i年的母牛頭數 = 去年的木牛頭數 + 新生的小牛頭數(只有距第i年3年前的牛才能生小牛)。

代碼:

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
    int n;
    int f[55];
    f[1] = 1;
    f[2] = 2;
    f[3] = 3;
    for(int i = 4; i < 55; i ++){
        f[i] = f[i-1] + f[i-3];
    }
    while(scanf("%d",&n) != EOF){
        if(n == 0) break;
        printf("%d\n",f[n]);
    }
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章