Last updated 1 year ago
Was this helpful?
func catalan(num) { var t = [0, 1] (1..num).map { |i| flip(^i ).each {|j| t[j+1] += t[j] } t[i+1] = t[i] flip(^i.inc).each {|j| t[j+1] += t[j] } t[i+1] - t[i] } } say catalan(15).join(' ')
1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845