33 lines
557 B
Plaintext
33 lines
557 B
Plaintext
// recursive
|
|
function factorialr n
|
|
if n < 2 then
|
|
return 1
|
|
else
|
|
return n * factorialr(n-1)
|
|
end if
|
|
end factorialr
|
|
|
|
// using accumulator
|
|
function factorialacc n acc
|
|
if n = 0 then
|
|
return acc
|
|
else
|
|
return factorialacc(n-1, n * acc)
|
|
end if
|
|
end factorialacc
|
|
|
|
function factorial n
|
|
return factorialacc(n,1)
|
|
end factorial
|
|
|
|
// iterative
|
|
function factorialit n
|
|
put 1 into f
|
|
if n > 1 then
|
|
repeat with i = 1 to n
|
|
multiply f by i
|
|
end repeat
|
|
end if
|
|
return f
|
|
end factorialit
|