Ackermann's Function is a recursive mathematical algorithm that can be used to test how well a computer performs recursion. Design a function
ackermann(m,n)
, which solves Ackermann's Function. Use the following logic in your function:If m = 0, then return n + 1 If n = 0 then return ackermann(m-1, 1) Otherwise, return ackermann(m-1, ackermann(m, n-1))
The program stops after it hits 13. Can anyone tell me what I have done wrong?
declare main()
declare ackermann(m:int, n:int)
openconsole
main()
print:print "Press any key to quit...",
do:until inkey$<>""
closeconsole
end
sub main()
def counter, m, n:int
counter = 0
for counter = 1 to 100
print ackermann(counter)
next counter
return
sub ackermann(m, n)
if m = 0
return = n + 1
else
if n = 0
return = ackermann(m - 1, 1)
else
return = ackermann(m - 1, ackermann(m, n - 1))
endif
endif
return