2015-02-20 00:35:01 -05:00
|
|
|
ulong ackermann(in ulong m, in ulong n) pure nothrow @nogc {
|
2013-04-10 16:57:12 -07:00
|
|
|
if (m == 0)
|
|
|
|
|
return n + 1;
|
|
|
|
|
if (n == 0)
|
|
|
|
|
return ackermann(m - 1, 1);
|
|
|
|
|
return ackermann(m - 1, ackermann(m, n - 1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void main() {
|
|
|
|
|
assert(ackermann(2, 4) == 11);
|
|
|
|
|
}
|