Triangulo recursivo
Publicado por Tacito (2 intervenciones) el 17/04/2011 19:42:13
Estoy haciendo un método recursivo que recibe un entero entre 1 y 10 y dibuja un triángulo.
Ejemplos:
triangulo(3); // genera
1
21
321
triangulo(5); //genera
1
21
321
4321
54321
Necesito ayuda. El siguiente código sólo devuelve:
1
21
para cualquier valor de N.
Gracias.
char cadenaT[20];
char * Recursion::triangulo(int N) {
if(N == 1 || N >= 10)
return "El numero deber ser mayor que uno y menor que 10.";
else {
cadenaT[0] = '\0'; // Para vaciar cadenaT
strcat(cadenaT, "1\n21\n");
return trianguloAux(N, 2);
}
}
char * Recursion::trianguloAux(int N, int m) {
if(N = m)
return cadenaT;
int nivel = 0;
for(int i = m+1; i >= 1; i--) {
nivel += (i * pow(10.0, (double)(i-1)));
}
char valorAString[20];
itoa(nivel, valorAString, 10);
strcat(cadenaT, valorAString);
strcat(cadenaT, "\n");
return trianguloAux(N, m+1);
}
Ejemplos:
triangulo(3); // genera
1
21
321
triangulo(5); //genera
1
21
321
4321
54321
Necesito ayuda. El siguiente código sólo devuelve:
1
21
para cualquier valor de N.
Gracias.
char cadenaT[20];
char * Recursion::triangulo(int N) {
if(N == 1 || N >= 10)
return "El numero deber ser mayor que uno y menor que 10.";
else {
cadenaT[0] = '\0'; // Para vaciar cadenaT
strcat(cadenaT, "1\n21\n");
return trianguloAux(N, 2);
}
}
char * Recursion::trianguloAux(int N, int m) {
if(N = m)
return cadenaT;
int nivel = 0;
for(int i = m+1; i >= 1; i--) {
nivel += (i * pow(10.0, (double)(i-1)));
}
char valorAString[20];
itoa(nivel, valorAString, 10);
strcat(cadenaT, valorAString);
strcat(cadenaT, "\n");
return trianguloAux(N, m+1);
}
Valora esta pregunta


0