viernes, 19 de diciembre de 2008

Función de Ackerman en C

La función de Ackerman está dada por:


[sourcecode language='cpp']#include
int ackerman(int m, int n)
{
if(m==0)
return n+1;
else
{
if(n==0)
return ackerman(m-1, 1);
else
return ackerman(m-1, ackerman(m, n-1));
}
}

void main( )
{
int m, n;
printf("Dame el primer argumento para la funcion de Ackerman (m): ");
scanf("%d",&m);/*aqui cuidado, que el wordpress le agrega cosas, simplemente hay que leer el valor de m*/
printf("Dame el segundo argumento para la funcion de Ackerman (n): ");
scanf("%d",&n);/*aqui cuidado, que el wordpress le agrega cosas, simplemente hay que leer el valor de n*/
printf("Ackerman(%d,%d) = %d",m,n,ackerman(m,n));
printf("\n");
}[/sourcecode]

1 comentario:

  1. Tendrías que intentar usar programación dinámica para que no recalcule tantas cosas, es muy lento. O mejor usar Haskell

    ResponderEliminar