problema de las vacas

tema:

Vaca una vaca que nacen cada año, el crecimiento de la vaca recién nacido después de tres años puede ser una vaca en bruto por año, suponiendo que no morirán. En la primera granja de vacas tiene un maduro, a partir del segundo año, las vaquillas vaca cruda comenzaron, en busca de N años, el número de vacas.

Ejemplificado por el número de años antes de que la vaca se puede encontrar la ley: hace tres años, el número de vacas son 1,2,3 respectivamente, desde el cuarto año, satisface F (N) = F (N -1) + F ( N-3). entre

F (N) , dijo que este año el número de vacas, F (N-1) representa el último número de vacas, F (N-3) representa hace tres años, las vacas recién nacidos ya pueden empezar a tener hijos, que la vaca nació hace tres años, número.

Código es el siguiente:

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));
	}
}	

temas avanzados:

Si cada vaca puede vivir 10 años, en busca de N, el número de vacas.

Este problema necesita ser resuelto.

Publicado 61 artículos originales · ganado elogios 9 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_33204444/article/details/95625940
Recomendado
Clasificación