RosettaCodeData/Task/Catalan-numbers/Yabasic/catalan-numbers.basic
2026-04-30 12:34:36 -04:00

38 lines
749 B
Text

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