36 lines
665 B
Plaintext
36 lines
665 B
Plaintext
FUNCTION factorial(n)
|
|
IF n < 1 THEN LET factorial = 1
|
|
|
|
LET product = 1
|
|
FOR i = 2 TO n
|
|
LET product = product*i
|
|
NEXT i
|
|
|
|
LET factorial = product
|
|
END FUNCTION
|
|
|
|
FUNCTION binomial(n, k)
|
|
! Special cases
|
|
IF k = 0 OR k = n THEN LET binomial = 1
|
|
IF k < 0 OR k > n THEN LET binomial = 0
|
|
|
|
! For efficiency, we use the smallest value of k or (n-k)
|
|
IF k > n-k THEN LET k = n-k
|
|
LET product = 1
|
|
|
|
FOR i = 1 TO k
|
|
LET product = product*(n-k+i)/i
|
|
NEXT i
|
|
|
|
LET binomial = INT(product+0.5)
|
|
END FUNCTION
|
|
|
|
FOR n = 0 TO 14
|
|
FOR k = 0 TO n
|
|
PRINT USING " ####": binomial(n,k);
|
|
NEXT k
|
|
PRINT
|
|
NEXT n
|
|
|
|
END
|