Pirámide de dígitos programación recursiva (Java)
Problema:
Escribir un proceso recursivo que muestre una media pirámide de dígitos como se muestra en la siguiente figura:
1
21
321
4321
54321
654321
7654321
87654321
987654321
para desarrollar este problema es necesario realizarlo en dos partes.
la primera parte es la que va a realizar cada piso de la pirámide y la segunda parte es la que va a llenar la pirámide con los dígitos como se muestra a continuación:
public static void main(String[] args) {
piramide(5);
}
public static void piramide(int pisos){
if (pisos==0){
return;
}
piramide( pisos-1);
System.out.println(estructura(pisos));
}
public static int estructura(int a){
if (a==1){
return 1;
}
return a * (int)Math.pow(10, a-1) + estructura(a - 1);
}
la pirámide recorre cada piso y la estructura se encarga de generar los dígitos en cada piso
El metodo piramide se encarga de imprimir la pirámide de forma recursiva:
piramide(pisos - 1)
, lo que asegura que primero se impriman los pisos inferiores antes de imprimir el piso actual.estructura(pisos)
, que es el valor numérico para ese piso.a
es 1, devuelve 1 (condición base).a
es mayor que 1, genera un número que comienza con a
seguido de a-1
números, formando así un "nivel" de la pirámide. Lo hace multiplicando a
por 10
elevado a la potencia a-1
(lo que desplaza a a
a la izquierda), y sumándole el resultado de estructura(a - 1)
(el nivel inferior).
Comentarios
Publicar un comentario