C/Visual C - Programa Ackerman

 
Vista:

Programa Ackerman

Publicado por Ingrid Acevedo (1 intervención) el 30/03/2004 21:55:59
Necesito Saber como se corre paso a paso el programa recursivo de Ackerman y sus resultados con los datos 1,2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Programa Ackerman

Publicado por J. Oliver Beltran (166 intervenciones) el 31/03/2004 12:10:12
El algoritmo de Ackerman, si no recuerdo mal era:
A(m,n)=
1) A(m-1,A(m,n-1)) si m y n != 0;
2) A(m-1,1) Si n=0;
3) n+1 si m = 0.
Y si esta mal me lo dices. Puedes comprobar tu misma el orden de ejecución mediante el siguiente procedimiento:
int Ackerman(int m, int n)
{
if (m==0) {
printf("A(%d,%d)\n",m,n);
return n+1;
}
else if (n==0){
printf("A(%d,%d)\n",m,n);
return Ackerman(m-1,1);
}
else{ printf("A(%d,A(%d,%d))\n",m-1,m,n-1);
return Ackerman(m-1,Ackerman(m,n-1));
}
}
Que te sea de ayuda!
Si tienes algun problema no dudes en consultar!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programa Ackerman

Publicado por J. Oliver Beltran (166 intervenciones) el 31/03/2004 20:42:28
Una aclaración, con esto veras solo el orden de llamadas, pero no los resultados intermedios. Si quieres verlos introduce en el código una variable de tipo int y muestrala tambien en pantalla. Por ejemplo
int res;
res = Ackerman(m,n);
printf("A(%d,%d)=%d\n", m,n,res);
return res;
y asi en cada uno de los casos que te puse en el algoritmo anterior.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar