`
hengjie10
  • 浏览: 24174 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

标准2 维表问题

 
阅读更多
标准2 维表问题
´问题描述:
n 是一个正整数。2n 的标准2 维表是由正整数 1,2 ,…,2n 组成的2n 数组,该
数组的每行从左到右递增,每列从上到下递增。2n 的标准2 维表全体记为Tab(n) 。例如,
当n=3 时Tab(3)如下:
1 2 3 1 2 4 1 2 5 1 3 4 1 3 5
4 5 6 3 5 6 3 4 6 2 5 6 2 4 6


´编程任务:
给定正整数n,计算Tab(n) 中2n 的标准2 维表的个数。
´数据输入:
由文件input.txt 给出输入数据。第一行有1 个正整数n 。
´结果输出:
将计算出的Tab(n) 中2n 的标准2 维表的个数输出到文件output.txt 。
输入文件示例 输出文件示例
input.txt output.txt

3 5

此问题是求Catalan数问题 代码如下:

//此题的答案其实就是Catalan数,因为数字很大所以关键是要用到大数相乘的方法
#include<stdio.h>
int a[101][101] = {0};
int main()
{
    int n,i,j,len,r,temp,t;
    int b[101];
    a[1][0] = 1; // 低坐标存放大数的低位
    len = 1;
    b[1] = 1;
    for (i = 2; i <= 100; i++)
    {
        t = i - 1;
       for (j=0;j<len;j++) // 模拟乘法,从低位开始

   {
    a[i][j] = a[i-1][j] * (4 * t + 2);
   }
        for (r = j = 0; j < len; j++) // 处理相乘结果
        {
            temp = a[i][j] + r;
            a[i][j] = temp % 10;
            r = temp / 10;
        }
        while (r) // 进位处理

        {
            a[i][len++] = r % 10;
            r /= 10;
        }
        for (j = len-1, r = 0; j >= 0; j--) // 模拟除法,从高位开始
        {
            temp = r * 10 + a[i][j];
            a[i][j] = temp / (t+2);
            r = temp % (t+2);
        }
       while (!a[i][len-1]) // 高位零处理
   {
    len--;
   }
        b[i] = len; // 记录结果的长度
    }
    while (scanf("%d",&n))
    {   
        for(j = b[n] - 1; j >= 0; j--)
   {
    printf("%d",a[n][j]);
   }
        printf("\n");
    }
    return 0;
}


分享到:
评论

相关推荐

    tab:标准2 维表问题

    2*n的标准2维表全体记为Tab(n)。例如, 当n=3时Tab(3)如下: 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 4 5 6 3 5 6 3 4 6 2 5 6 2 4 6 «编程任务: 给定正整数n,计算Tab(n)中2*n的标准2 维表的个数。 «数据输入: 输入一个...

    实现2-10标准二维表问题.cpp

    实现2-10标准二维表问题.cpp

    标准二维表

    10. **标准二维表问题**:这个问题的核心可能是在高精度计算下,如何有效地构建和操作二维表,包括存储、查找、更新和计算等操作。可能需要设计优化的数据结构,如矩阵压缩存储,以及高效的操作算法。 这十个问题...

    入户装维标准

    【入户装维标准】是指电信运营商为确保提供高质量的上门安装和维护服务而制定的一系列规范,涵盖了服务人员的仪容仪表、预约服务流程以及施工过程中的具体要求。以下是这些规范的详细说明: **第一部分:仪容仪表...

    利用共轭梯度法重建三维物体表面算法的研究

    在三维物体表面重建的背景下,其核心思想是将重建问题转化为一个最小化问题,即找到一个能够使误差平方和最小化的表面模型。这里,误差是指重建后的表面与原始离散点之间的偏差。 具体而言,共轭梯度法首先定义了一...

    算法设计 王晓东 课后作业 源代码

    n后 , 编辑距离问题 , 标准2维表问题 ,独立任务最优调度 , 会场安排 , 矩阵相乘 , 圈乘运算 , 输油管道问题 , 兔子生崽 , 邮局选址 , 又重复元素排列问题 , 找第二名学生成绩 , 众数问题 , 字典序问题 ...

    AnimateCC二维动画设计与制作-课程标准.pdf

    AnimateCC二维动画设计与制作课程标准 本课程旨在培养数字媒体应用技术专业(影视动画方向)学生的二维动画设计与制作能力,目标是让学生掌握计算机二维动画设计与制作的基本知识与创作技巧,能制作不同类型的简单...

    matlab 三维重建 曲面转实体

    例如,对于极坐标系统下的数据,`surf2solid_polar.m`可能会处理角度的特殊性,如处理360度与0度之间的连接问题。 总之,MATLAB的三维重建和曲面转实体功能是强大的工具,可以帮助科研人员和工程师从数据中构建真实...

    一维高斯随机粗糙面建模.zip

    2. **生成高斯随机数**:利用MATLAB的内置函数`randn`或`mvnrnd`(如果考虑多维高斯分布)生成一维高斯随机数序列,代表表面高度的各个点。 3. **相关性处理**:由于实际的粗糙表面具有一定的空间相关性,即相邻点的...

    非交换相空间中(2 +1)维Dirac振荡器精确解的代数方法

    综上所述,本文通过代数方法在非交换相空间中精确求解了(2+1)维Dirac振荡器模型,不仅展示了sl(2)代数在理论物理问题求解中的应用,也提供了新的视角来理解量子系统和对称性。该研究的成功为处理类似问题提供了...

    中国联通宽带业务入户装维操作和服务规范标准.doc

    际情况,参照本规范,制定具体的实施办法,确保宽带装维服务的专业化、标准化和规范化。本规范旨在为装维人员提供清晰的操作指南,同时也为客户提供一致性的优质服务体验。 第一章 总则 本章强调了宽带业务入户装维...

    MATLAB计算分形维数的2种方法.docx

    在探索自然界中的复杂结构和形态时,分形几何提供了一个强大的数学工具,...随着计算机技术和数学理论的进一步发展,未来在分形维数计算及应用领域必将会出现更多创新性的工具和方法,助力科研人员解决更多的实际问题。

    CAD三维练习图.pdf

    在三维CAD设计中,精细度和精准度是评价设计成果的重要标准。因此,这份资料中所包含的练习不仅仅是为了让设计者学会使用工具,更是为了让设计者学会在细节中追求完美,逐渐培养出严格的标准和严谨的态度。 ...

    matlab_基于2D-LDA的人脸识别编码_2维线性判别进行人脸识别

    2D-LDA则是LDA在二维空间中的应用,适用于处理具有两个输入变量的问题。在人脸识别中,2D-LDA可以将高维的人脸图像数据降维,以便更高效地进行分类。 MATLAB作为一种强大的数值计算和可视化工具,非常适合进行这样...

    三维管线构网流程

    2. **自定义构建三维网络**:除了标准的构建方式外,SuperMap GIS 8C还支持用户自定义构建规则,可以根据实际需求调整管线和管点的三维模型。 #### 三、加载三维网络数据集 构建完成后,下一步就是将这些三维网络...

    人脸的三维重建

    在人脸三维重建的过程中,还会涉及到一些关键的挑战,例如光照变化、姿态变化、表情变化以及遮挡等问题。为了克服这些困难,研究人员发展了各种技术,如光照不变性特征提取、姿态鲁棒的特征匹配、以及基于深度学习的...

    二维稳态导热微分方程的数值求解(matlab)

    MATLAB提供了丰富的工具箱和函数,如PDE Toolbox或FEM Toolbox,来解决偏微分方程(PDEs),包括二维稳态导热问题。 首先,二维稳态导热微分方程通常表示为: ∇²T = 0 其中,T是温度,∇²是拉普拉斯算子。在...

    opengl三维显示控件

    OpenGL是一个跨语言、跨平台的编程接口,它定义了用于渲染二维和三维图形的标准。通过OpenGL,开发者能够创建复杂的3D模型,进行光照处理、纹理映射、深度缓冲等操作,从而在屏幕上生成生动逼真的图像。这个基于MFC...

Global site tag (gtag.js) - Google Analytics