19 lines
424 B
Text
19 lines
424 B
Text
/* Note that ulong is 32 bits, so fac(12) is the largest
|
|
* supported value. This is why the input parameter
|
|
* is a byte. The parameters are all unsigned. */
|
|
proc nonrec fac(byte n) ulong:
|
|
byte i;
|
|
ulong rslt;
|
|
rslt := 1;
|
|
for i from 2 upto n do
|
|
rslt := rslt * i
|
|
od;
|
|
rslt
|
|
corp
|
|
|
|
proc nonrec main() void:
|
|
byte i;
|
|
for i from 0 upto 12 do
|
|
writeln(i:2, "! = ", fac(i):9)
|
|
od
|
|
corp
|