RosettaCodeData/Task/Catalan-numbers-Pascals-triangle/Pascal/catalan-numbers-pascals-triangle.pascal
2015-02-20 09:02:09 -05:00

35 lines
587 B
Text

type
tElement = Uint64;
var
Catalan : array[0..50] of tElement;
procedure GetCatalan(L:longint);
var
PasTri : array[0..100] of tElement;
j,k: longInt;
begin
l := l*2;
PasTri[0] := 1;
j := 0;
while (j<L) do
begin
inc(j);
k := (j+1) div 2;
PasTri[k] :=PasTri[k-1];
For k := k downto 1 do
inc(PasTri[k],PasTri[k-1]);
IF NOT(Odd(j)) then
begin
k := j div 2;
Catalan[k] :=PasTri[k]-PasTri[k-1];
end;
end;
end;
var
i,l: longint;
Begin
l := 15;
GetCatalan(L);
For i := 1 to L do
Writeln(i:3,Catalan[i]:20);
end.