zoukankan      html  css  js  c++  java
  • 如何求卡特兰数——代码如下

    void catalan() //求卡特兰数

    {

        int i, j, len, carry, temp;

        a[1][0] = b[1] = 1;

        len = 1;

        for(i = 2; i <= 100; i++)

        {

            for(j = 0; j < len; j++) //乘法

                a[i][j] = a[i-1][j]*(4*(i-1)+2);

            carry = 0;

            for(j = 0; j < len; j++) //处理相乘结果

            {

                temp = a[i][j] + carry;

                a[i][j] = temp % 10;

                carry = temp / 10;

            }

            while(carry) //进位处理

            {

                a[i][len++] = carry % 10;

                carry /= 10;

            }

            carry = 0;

            for(j = len-1; j >= 0; j--) //除法

            {

                temp = carry*10 + a[i][j];

                a[i][j] = temp/(i+1);

                carry = temp%(i+1);

            }

            while(!a[i][len-1]) //高位零处理

                len --;

            b[i] = len;

        }

    }

  • 相关阅读:
    UVa 1605
    UVa 120
    UVa 10384
    UVa 11694
    UVa 11846
    常用小函数
    【DP】:CF #319 (Div. 2) B. Modulo Sum
    类的无参方法
    类和对象
    七言
  • 原文地址:https://www.cnblogs.com/sxmcACM/p/3287934.html
Copyright © 2011-2022 走看看