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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/as1072966956/article/details/82981101
package class_08;
/**
 * 
 * 母牛每年生一只母牛,新出生的母牛成长三年后也能每年生一只
 * 母牛,假设不会死。求N年后,母牛的数量。
 * fn=f(n-1)+f(n-3)
 * 
 * 如果每只母牛只能活10年,求N年后,母牛的数量
 *
 */
public class Code_05_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 (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));
	}

}

猜你喜欢

转载自blog.csdn.net/as1072966956/article/details/82981101
今日推荐