La recursión hay que plantearla siempre con un caso base y un caso que haga evolucionar los parámetros de llamada de forma que sea posible alcanzar el caso base. En este caso el caso base sería que la cadena haya alcanzado la longitud deseada, y la evolución del parámetro se logra incrementando la longitud de la cadena en una unidad en cada ocasión. El código:
/*Ejemplo aprenderaprogramar.com*/
public class ejemploRecursionJava {
public static void main (String[] Args) {
System.out.println ("Ejemplo recursión Java");
piramideRecursiva(4, "*", "*");
System.out.println ("\n\n\nOtro ejemplo:");
piramideRecursiva( 10, "*", "*");
System.out.println ("\n\n\nOtro ejemplo:");
piramideRecursiva( 6, "@", "@");
}
public static void piramideRecursiva (int numeroCaracteres, String cadenaDePartida, String cadenaActual) {
if (cadenaActual.length() == numeroCaracteres) {
System.out.println("" + cadenaActual);
}
else {
System.out.println("" + cadenaActual);
cadenaActual = cadenaActual.concat(cadenaDePartida);
piramideRecursiva(numeroCaracteres, cadenaDePartida, cadenaActual);
}
}
}