题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2018
分析:dp[n]表示第n年的奶牛的个数.第n年的奶牛的个数等于(第n-1年奶牛的个数)加上(第n年新增的奶牛的个数),其中第n年新增的奶牛的个数等于第n-3年那些奶牛的个数(因为第n-3年的奶牛到第n年恰好可以生产了)...
Sample Input 2 4 5 0 Sample Output 2 4 6
****************************************************
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<queue> 5 #include<algorithm> 6 #include<cmath> 7 #include<iostream> 8 9 using namespace std; 10 typedef long long LL; 11 12 #define INF 0x3f3f3f3f 13 #define N 22000 14 #define MAXN 100000000 15 #define mod 1000000007 16 17 int dp[60]; 18 19 int main() 20 { 21 int n,i; 22 23 dp[1]=1; 24 dp[2]=2; 25 dp[3]=3; 26 dp[4]=4; 27 for(i=5;i<=55;i++) 28 dp[i]=dp[i-1]+dp[i-3]; 29 ///第n年奶牛的个数=第n-1年奶牛的个数+第n年新增的奶牛的个数(第n-3年奶牛的个数) 30 while(scanf("%d", &n),n) 31 { 32 printf("%d ", dp[n]); 33 } 34 return 0; 35 }