您的位置:首页 > 其它

动态规划——递推 兔子和奶牛

2018-03-30 14:33 423 查看

递推

母牛每年生一只母牛,新出生的母牛成长三年后也能每年生一只

母牛,假设不会死。求N年后,母牛的数量。

进阶

如果每只母牛只能活10年,求N年后,母牛的数量。

public class Cow {

public static int cowNumber1(int n) {//递归原型
if (n < 1) {
return 0;
}
if (n == 1 || n == 2 || n == 3) {
return n;
}
return cowNumber1(n - 1) + cowNumber1(n - 3);
}

public static int cowNumber2(int n) {//动态规划改成的递推版本
if (n < 1) {
return 0;
}
if (n == 1 || n == 2 || n == 3) {
return n;
}
int res = 3;
int pre = 2;
int prepre = 1;
int tmp1 = 0;
int tmp2 = 0;
for (<
4000
span class="hljs-keyword">int i = 4; i <= n; i++) {
tmp1 = res;
tmp2 = pre;
res = res + prepre;
pre = tmp1;
prepre = tmp2;
}
return res;
}

public static void main(String[] args) {
int n = 20;
System.out.println(cowNumber1(n));
System.out.println(cowNumber2(n));
}
//进阶版本只要再原式上再减去f(10)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: