JAVA算法:递归求解母牛问题(JAVA代码)
package com.bean.algorithmbasic;
public class CowProblem {
/*
* 由于所有的母牛都不会死,所以第N-1年的牛会毫无损失的活到第N年。
* 同时,所有成熟的牛都会生一头新的母牛,那么成熟牛的数量如何估计?
* 就是第N-3年的所有牛,到第N年肯定都是成熟的牛,期间出生的牛肯定都没有成熟。
* 所以 S(n)= S(n-1)+S(n-3)。
* 初始项为:S(1)=1;S(2)=2;S(3)=3.
*
* */
public static int cowCompute(int n) {
int result=0;
if(n<1) {
return 0;
}
if(n==1 || n==2 || n==3) {
return n;
}
return cowCompute(n-1)+cowCompute(n-3);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=10;i++) {
int result=cowCompute(i);
System.out.println("第 "+i+"年: "+result);
}
}
}
程序运行结果:
第 1年: 1
第 2年: 2
第 3年: 3
第 4年: 4
第 5年: 6
第 6年: 9
第 7年: 13
第 8年: 19
第 9年: 28
第 10年: 41