function factorial(n) if n = 0 then return 1 return n * factorial(n - 1) end function function catalan1(n) prod = 1 for i = n + 2 to 2 * n prod *= i next i return int(prod / factorial(n)) end function function catalan2(n) if n = 0 then return 1 sum = 0 for i = 0 to n - 1 sum += catalan2(i) * catalan2(n - 1 - i) next i return sum end function function catalan3(n) if n = 0 then return 1 return catalan3(n - 1) * 2 * (2 * n - 1) \ (n + 1) end function print "n", "First", "Second", "Third" print "-", "-----", "------", "-----" print for i = 0 to 15 print i, catalan1(i), catalan2(i), catalan3(i) next i