24 lines
476 B
Plaintext
24 lines
476 B
Plaintext
; saving the division for last ensures we divide the largest
|
|
; numerator by the smallest denominator
|
|
|
|
Procedure.q CatalanNumber(n.q)
|
|
If n<0:ProcedureReturn 0:EndIf
|
|
If n=0:ProcedureReturn 1:EndIf
|
|
ProcedureReturn (2*(2*n-1))*CatalanNumber(n-1)/(n+1)
|
|
EndProcedure
|
|
|
|
ls=25
|
|
rs=12
|
|
|
|
a.s=""
|
|
a.s+LSet(RSet("n",rs),ls)+"CatalanNumber(n)"
|
|
; cw(a.s)
|
|
Debug a.s
|
|
|
|
For n=0 to 33 ;33 largest correct quad for n
|
|
a.s=""
|
|
a.s+LSet(RSet(Str(n),rs),ls)+Str(CatalanNumber(n))
|
|
; cw(a.s)
|
|
Debug a.s
|
|
Next
|