1
0
mirror of https://github.com/moshix/mvs.git synced 2026-01-11 23:43:00 +00:00

Create ackerman.pli

This commit is contained in:
moshix 2023-02-13 12:10:27 +01:00 committed by GitHub
parent 602fb56cc2
commit 17b65ba969
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

32
ackerman.pli Normal file
View File

@ -0,0 +1,32 @@
/******************************************************/
/* This program evaluates the Ackermann function */
/* A(m,n), and increases the size of the stack */
/* because of the large number of recursive calls. */
/******************************************************/
ack:
procedure options(main,stack(2000));
declare
(m,maxm,n,maxn) fixed;
put skip list('Type max m,n: ');
get list(maxm,maxn);
put skip
list(' ',(decimal(n,4) do n=0 to maxn));
do m = 0 to maxm;
put skip list(decimal(m,4),':');
do n = 0 to maxn;
put list(decimal(ackermann(m,n),4));
end;
end;
stop;
ackermann:
procedure(m,n) returns(fixed) recursive;
declare (m,n) fixed;
if m = 0 then
return(n+1);
if n = 0 then
return(ackermann(m-1,1));
return(ackermann(m-1,ackermann(m,n-1)));
end ackermann;
end ack;