Task

Print out the first   15   Catalan numbers by extracting them from Pascal's triangle.



See

   Catalan Numbers and the Pascal Triangle.     This method enables calculation of Catalan Numbers using only addition and subtraction.
   Catalan's Triangle for a Number Triangle that generates Catalan Numbers using only addition.
   Sequence A000108 on OEIS has a lot of information on Catalan Numbers.
Related Tasks

Pascal's triangle

' version 15-09-2015
' compile with: fbc -s console
 
#Define size 31                 ' (N * 2 + 1)
 
Sub pascal_triangle(rows As Integer, Pas_tri() As ULongInt)
 
    Dim As Integer x, y
 
    For x = 1 To rows
        Pas_tri(1,x) = 1
        Pas_tri(x,1) = 1
    Next
 
    For x = 2 To rows
        For y = 2 To rows + 1 - x
            Pas_tri(x, y) = pas_tri(x - 1 , y) + pas_tri(x, y - 1)
        Next
    Next
 
End Sub
 
' ------=< MAIN >=------
 
Dim As Integer count, row
Dim As ULongInt triangle(1 To size, 1 To size)
 
pascal_triangle(size, triangle())
 
'  1   1   1   1   1   1  
'  1   2   3   4   5   6  
'  1   3   6  10  15  21  
'  1   4  10  20  35  56  
'  1   5  15  35  70 126  
'  1   6  21  56 126 252  
' The Pascal triangle is rotated 45 deg.
' to find the Catalan number we need to follow the diagonal
' for top left to bottom right 
' take the number on diagonal and subtract the number in de cell
' one up and one to right 
' 1 (2 - 1), 2 (6 - 4), 5 (20 - 15) ... 
 
 
Print "The first 15 Catalan numbers are" : print
count = 1 : row = 2
Do
    Print Using "###: #########"; count; triangle(row, row) - triangle(row +1, row -1)
    row = row + 1
    count =  count + 1
Loop Until count > 15
 
' empty keyboard buffer
While InKey <> "" : Wend
Print : Print "hit any key to end program"
Sleep
End