Cantidad de lineas para Construir Hexágono de Crecimiento Recursivo (Java)
Problema
Se pide disenar proceso(s) recursivo(s) necesario(s) para encontrar la cantidad de lineas que se requieren
para construir hexagonos de crecimiento de nivel n, como se muestra en la siguiente figura.
Si construimos un nivel mas:
public static void main(String[] args) {
System.out.println(hexagono(2));
}
public static int hexagono(int nivel){
if (nivel==1){
return 6;
}
return hexagono(nivel-1)+6*4+(nivel-2)*6*3;
}
El método hexagono (int nivel) es un método es recursivo y calcula cuántos bloques hay en un hexágono de un nivel dado:
- Condición
base: Si
nivel == 1
, el método retorna6
, ya que un hexágono de nivel 1 tiene 6 bloques. Estos representan una célula central rodeada de 6 bloques, lo que forma el hexágono más básico. - Caso
recursivo: Si el nivel es mayor que 1, la función llama a sí
misma recursivamente para calcular el número de bloques del nivel anterior (
hexagono(nivel - 1)
) y luego añade los bloques correspondientes al nivel actual.
6 * 4 + (nivel - 2) * 6 * 3
Donde:
- 6 * 4: Representa los bloques fijos que se añaden en la nueva capa externa del hexágono.
- (nivel - 2) * 6 * 3: Representa el crecimiento adicional del hexágono en niveles sucesivos a partir del nivel 3 en adelante. Dado que este cálculo es para hexágonos más grandes, no aplica a niveles pequeños.
Comentarios
Publicar un comentario