Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
25
Task/Catalan-numbers/PascalABC.NET/catalan-numbers.pas
Normal file
25
Task/Catalan-numbers/PascalABC.NET/catalan-numbers.pas
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
##
|
||||
function binom(n, k: integer): int64;
|
||||
begin
|
||||
result := 1;
|
||||
for var i := 1 to k do
|
||||
result := result * (n - i + 1) div i
|
||||
end;
|
||||
|
||||
function catalan1(n: integer) := binom(2 * n, n) div (n + 1);
|
||||
|
||||
function catalan2(n: integer): integer;
|
||||
begin
|
||||
if n = 0 then begin result := 1; exit end;
|
||||
for var i := 0 to n - 1 do
|
||||
result += catalan2(i) * catalan2(n - 1 - i)
|
||||
end;
|
||||
|
||||
function catalan3(n: integer): integer;
|
||||
begin
|
||||
if n > 0 then result := 2 * (2 * n - 1) * catalan3(n - 1) div (1 + n)
|
||||
else result := 1;
|
||||
end;
|
||||
|
||||
for var i := 0 to 15 do
|
||||
writeln(i:2, catalan1(i):9, catalan2(i):9, catalan3(i):9);
|
||||
Loading…
Add table
Add a link
Reference in a new issue