19 lines
400 B
Plaintext
19 lines
400 B
Plaintext
DECLARE FUNCTION catalan (n as INTEGER) AS SINGLE
|
|
|
|
REDIM SHARED results(0) AS SINGLE
|
|
|
|
FOR x% = 1 TO 15
|
|
PRINT x%, catalan (x%)
|
|
NEXT
|
|
|
|
FUNCTION catalan (n as INTEGER) AS SINGLE
|
|
IF UBOUND(results) < n THEN REDIM PRESERVE results(n)
|
|
|
|
IF 0 = n THEN
|
|
results(0) = 1
|
|
ELSE
|
|
results(n) = ((2 * ((2 * n) - 1)) / (n + 1)) * catalan(n - 1)
|
|
END IF
|
|
catalan = results(n)
|
|
END FUNCTION
|