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];
} 

 

posted @ 2019-03-05 11:24  最美遇见你  阅读(221)  评论(0编辑  收藏  举报