讨论 / 传说中的卡特兰数算法。。。。
`天蝎籽` 2008-07-22 06:11:00
点我顶贴 收藏 删除
C/C++版:

#include<iostream>

using namespace std;

long long f[20];

int i,j,n;

main(){

cin>>n;

f[0]=1;

for(i=1;i<=n;i++)

{

f[i]=0;

for(j=0;j<=i-1;j++)

f[i]=f[i]+f[j]*f[i-j-1];

}

cout<<f[n];

}

Pas版:

program stack1(input,output);

const max=18;

var f:array[0..max] of longint;

i,j,n:integer;

begin

assign(input,stack.in);

reset(input);

readln(n);

close(input);

f[0]:=1;

for i:=1 to n do

begin

f[i]:=0;

for j:=0 to i-1 do f[i]:=f[i]+f[j]*f[i-j-1]

end;

assign(output,stack.out);

rewrite(output);

writeln(f[n]);

close(output);

end.

查看更多回复
提交回复