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