Catalan
推导过程中假定m[2]=1是最巧妙的设计 #include<iostream> #include<algorithm> using namespace std; //catalan int main(void) { int n,m[100]; cin >> n; for(int i=2;i<=n;i++) m[i]=0; m[2]=1; for(int i=3;i<=n;i++) { for(int k=2;k<=i-1;k++) { m[i]+=m[k]*m[i-k+1]; } } cout << m[n]; }