34 lines
675 B
Plaintext
34 lines
675 B
Plaintext
dim stack(5000, 3) # BASIC-256 lacks functions (as of ver. 0.9.6.66)
|
|
stack[0,0] = 3 # M
|
|
stack[0,1] = 7 # N
|
|
lev = 0
|
|
|
|
gosub ackermann
|
|
print "A("+stack[0,0]+","+stack[0,1]+") = "+stack[0,2]
|
|
end
|
|
|
|
ackermann:
|
|
if stack[lev,0]=0 then
|
|
stack[lev,2] = stack[lev,1]+1
|
|
return
|
|
end if
|
|
if stack[lev,1]=0 then
|
|
lev = lev+1
|
|
stack[lev,0] = stack[lev-1,0]-1
|
|
stack[lev,1] = 1
|
|
gosub ackermann
|
|
stack[lev-1,2] = stack[lev,2]
|
|
lev = lev-1
|
|
return
|
|
end if
|
|
lev = lev+1
|
|
stack[lev,0] = stack[lev-1,0]
|
|
stack[lev,1] = stack[lev-1,1]-1
|
|
gosub ackermann
|
|
stack[lev,0] = stack[lev-1,0]-1
|
|
stack[lev,1] = stack[lev,2]
|
|
gosub ackermann
|
|
stack[lev-1,2] = stack[lev,2]
|
|
lev = lev-1
|
|
return
|