牛の問題

トピック:

牛毎年生まれた牛は、3年後の新しい生まれの牛の成長は、それが死ぬことはないと仮定すると、年間生牛することができます。最初の牛農場は二年目から、成熟していて、生の牛の雌牛は、N年の牛の数を求めて、始めました。

牛は、法律見つけることができる前に、年の数によって例示される:3年前、牛の数は四年から、それぞれ1,2,3ある満たすF(N)= F(N -1)+ F( N-3)。間で

F(N)は、今年の牛の数、と言っF(N-1)は牛の最後の数を表し、F(N-3)は 3年前表し、生まれたばかりの牛はすでに、牛が3年前に誕生したこと、出産開始することができます番号。

コードは以下の通りであります:

package com.gxu.dawnlab_algorithm8;
/**
 * 母牛问题
 * @author junbin
 *
 * 2019年7月12日
 */
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 (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));
	}
}	

高度な問題:

各牛はN、牛の数を求めて、10年生きることができます。

この問題は解決される必要があります。

公開された61元の記事 ウォンの賞賛9 ビュー30000 +

おすすめ

転載: blog.csdn.net/qq_33204444/article/details/95625940