动态规划之母牛生产

题目:

假设农场中成熟的母牛每年会生产一头小母牛,并且永远不会死,第一年有一只小母牛,从第二年开始,母牛开始生小母牛。每只小母牛3年后成熟又可以生小母牛。给定整数N,求N年后N的数量;

思路:

利用动态规划,建立动态方程第i年的母牛数量等于第i-1年的母牛数加上三年前的,母牛数,因为三年前的小牛今年都会生产一头小牛,每年生一个,所以动态方程为:

dp[i] = dp[i-1] + dp[i-3];

代码实现:

public int cowNums(int n){

 int [] dp = new int [n+1];

 if(n<=3){

  return n;

  };

 dp[0] = 0;

 dp[1] = 1;

 dp[2] = 2;

 dp[3] = 3;

 for(int i = 4; i< = n; i++){

    dp[i] = dp[i-1] + dp[i-3];

  }

return dp[n];

}

posted @ 2022-04-09 00:30  时光不染-^^-  阅读(212)  评论(0)    收藏  举报