var
f:array [0..100] of longint;
i,j,k,n:longint;
begin
read(n);
fillchar(f,sizeof(f),0);
f[1]:=1;
for k:=2 to n do
for i:=1 to k-1 do
f[k]:=f[k]+f[i]*f[k-i];
write(f[n]);
readln;
readln;
end.
不是这个公式吗?百科里的
令h(1)=1,catalan数满足递归式:
h(n)= h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1) (其中n>=2)
var
f:array [0..100] of longint;
i,j,k,n:longint;
begin
read(n);
fillchar(f,sizeof(f),0);
f[0]:=1;
for k:=1 to n do
for i:=1 to k-1 do
f[k]:=f[k]+f[i]*f[k-i];
write(f[n]);
readln;
readln;
end.
改了还是不对呀。
全部都是0了。
再帮忙看下。
谁能帮忙解释下。
program p53;
var
f:array [0..100] of longint;
i,j,k,n:longint;
begin
f[0]:=1;
read(n);
for i:=1 to n do
for j:=0 to i-1 do
f[i]:=f[i]+f[j]*f[i-j-1];
write(f[n]);
readln;
readln;
end.
谁能帮忙解释下。
program p53;
var
f:array [0..100] of longint;
i,j,k,n:longint;
begin
f[0]:=1;
read(n);
for i:=1 to n do
for j:=0 to i-1 do
f[i]:=f[i]+f[j]*f[i-j-1];
write(f[n]);
readln;
readln;
end.
令h(1)=1,catalan数满足递归式:
h(n)= h(1)*h(n-1) + h(2)*h(n-2) + ... + h(n-1)h(1) (其中n>=2)