RosettaCodeData/Task/Evaluate-binomial-coefficients/True-BASIC/evaluate-binomial-coefficie...

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