mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
20 lines
368 B
Nim
20 lines
368 B
Nim
discard """
|
|
output: "125"
|
|
"""
|
|
# the Ackermann function
|
|
|
|
proc ack(x, y: int): int =
|
|
if x != 0:
|
|
if y != 0:
|
|
return ack(x-1, ack(x, y-1))
|
|
return ack(x-1, 1)
|
|
else:
|
|
return y + 1
|
|
# if x == 0: return y + 1
|
|
# elif y == 0: return ack(x-1, 1)
|
|
# else: return ack(x-1, ack(x, y-1))
|
|
|
|
# echo(ack(0, 0))
|
|
write(stdout, ack(3, 4)) #OUT 125
|
|
write stdout, "\n"
|