// Ackerman's function /* a(0,n)=n+1 a(m,o)=a(m-1,1) for m > 0 a(m,n)=a(m-1,a(m,n-1)) for n,m > 0 */ long int a(int m, int n) { int result = 0; if (m == 0) result = n + 1; else if (n == 0) result = a(m-1,1); else if (m > 0 && n > 0) result = a(m-1,a(m,n-1));
return result; }
int main(int argc, char* argv[]) { for (int m = 0; m <= 3; m++) { for (int n = 0; n <= 5; n++) { int result = a(m,n); printf("a(%d,%d)=%d\n",m,n,result); } }
Det kunne være Ackermans funktion, men det kunne jo også være en modificeret Ackerman - for at man ikke bare kan copy/paste fra nettet. Det er vel formentlig en skoleopgave.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.