RosettaCodeData/Task/Catalan-numbers/BASIC/catalan-numbers.basic

19 lines
402 B
Text
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
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
2026-04-30 12:34:36 -04:00
results(0) = 1
2023-07-01 11:58:00 -04:00
ELSE
2026-04-30 12:34:36 -04:00
results(n) = ((2 * ((2 * n) - 1)) / (n + 1)) * catalan(n - 1)
2023-07-01 11:58:00 -04:00
END IF
catalan = results(n)
END FUNCTION