31 lines
585 B
Plaintext
31 lines
585 B
Plaintext
class Ackermann {
|
|
function : Main(args : String[]) ~ Nil {
|
|
for(m := 0; m <= 3; ++m;) {
|
|
for(n := 0; n <= 4; ++n;) {
|
|
a := Ackermann(m, n);
|
|
if(a > 0) {
|
|
"Ackermann({$m}, {$n}) = {$a}"->PrintLine();
|
|
};
|
|
};
|
|
};
|
|
}
|
|
|
|
function : Ackermann(m : Int, n : Int) ~ Int {
|
|
if(m > 0) {
|
|
if (n > 0) {
|
|
return Ackermann(m - 1, Ackermann(m, n - 1));
|
|
}
|
|
else if (n = 0) {
|
|
return Ackermann(m - 1, 1);
|
|
};
|
|
}
|
|
else if(m = 0) {
|
|
if(n >= 0) {
|
|
return n + 1;
|
|
};
|
|
};
|
|
|
|
return -1;
|
|
}
|
|
}
|