一道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