分治与递归——标准二维表问题

《分治与递归——标准二维表问题》问题描述:设n是一个正整数。2n的标准二维表就是一个由正整数1到2n组成的2*nd的数组,该数组每行从左到右依次递增,每列从上到下依次递增,给出n,试求其所有的标准二维表的个数

算法思考:就是Catalan数,当然Catalan数的应用范围太广了

代码实现:

//标准二维表问题

#include <stdio.h>

#define N 1000

int jilu[N];

int catalan(int n)

{

    if(jilu[n]!=0) return jilu[n];

    int sum;

    sum=catalan(n-1)*(4*n-2)/(n+1);

    jilu[n]=sum;

    return sum;

}

int main()

{

    int n;

    jilu[0]=1;

    jilu[1]=1;

    while(scanf("%d",&n),n)

        printf("%d\n",catalan(n));

    return 0;

}


    原文作者:递归与分治算法
    原文地址: https://blog.csdn.net/skymyxvincent/article/details/52797239
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞