Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: felix en 13 de Abril 2014, 00:43
-
ayuda por fa lo que quiero es una pirámide de asteriscos que apunte hacia arriba yo lo tengo hacia abajo y tiene que ser de forma recursiva este es mi piramide hacia abajo de forma recursiva
public void piramide(int i,int j)
{
if(i>0)
{
System.out.print("*");
piramide(--i,j);
}else
{
if(j>0)
{
i=j;
System.out.println("");
piramide(--i,--j);
}
}
}
y me da por ejemplo
****
***
**
*
y esta es mi piramide hacia arriba pero no es de forma recursiva es usando for
y la quiero sin for ni while porfa ayudenme a combertilo a recursivo public void piramide()
{
for(int i=0;i<5;i++)
{
for(int j=0;j<i+1;j++)
{
System.out.print("*");
}
System.out.println("");
}
}
y este me da
*
**
***
****
por ayuda a convertilo a recursivo gracias de antemano
-
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);
}
}
}
-
muchas gracias César Krall me ayudaste bastante :)