26 lines
768 B
Plaintext
26 lines
768 B
Plaintext
|
/******************************************************/
|
|||
|
/* This program evaluates the Factorial function (n!) */
|
|||
|
/* using recursion and FIXED DECIMAL data. */
|
|||
|
/******************************************************/
|
|||
|
dfact:
|
|||
|
procedure options(main);
|
|||
|
declare
|
|||
|
i fixed;
|
|||
|
do i = 0 repeat(i+1);
|
|||
|
put skip list('Factorial(',i,')=',factorial(i));
|
|||
|
end;
|
|||
|
stop;
|
|||
|
|
|||
|
factorial:
|
|||
|
procedure(i) returns(fixed decimal(15,0))
|
|||
|
recursive;
|
|||
|
declare
|
|||
|
i fixed;
|
|||
|
|
|||
|
if i = 0 then return (1);
|
|||
|
return (decimal(i,15) * factorial(i-1));
|
|||
|
end factorial;
|
|||
|
|
|||
|
end dfact;
|
|||
|
|
|||
|
|