一道DP的題,規律的話多寫幾組就找到了ios
由於想到小母牛的存在就定義了dp[i][2];spa
第n年的母牛等於去年的加上前第三年新生的小母牛string
第n年的小母牛等於去年的母牛加上去年小母牛(減去今年長大的母牛加上今年剛長大的母牛生下的小牛)io
下面是代碼:stream
#include <iostream>
#include <string>
#include <cstdio>
using namespace std;di
int main(){
int dp[55][2],n;
for(int i=1;i<5;i++){//初始化
dp[i][0]=1;
dp[i][1]=i-1;
}
for(int i=5;i<55;i++){
dp[i][0]=dp[i-3][0]+dp[i-3][1];//dp[i-1][0]+dp[i-3][0];
dp[i][1]=dp[i-1][0]+dp[i-1][1];
}
while(1){
scanf("%d",&n);
if(n==0)break;
printf("%d\n",dp[n][0]+dp[n][1]);
}
return 0;
}while