Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成pascal';s三角形(上述两种方式)_Java_Arrays_Combinations_Pascals Triangle - Fatal编程技术网

Java 生成pascal';s三角形(上述两种方式)

Java 生成pascal';s三角形(上述两种方式),java,arrays,combinations,pascals-triangle,Java,Arrays,Combinations,Pascals Triangle,我有一个Java编程作业 我通过生成一个nCr()函数来实现它,然后使用double for循环打印出三角形 但是,分配要求创建一个不均匀的2d数组,然后将前几行中的两个数字相加,然后打印出数组,从而填充该数组 我知道我必须按照作业要求的方式完成作业,但我有一点感觉(至少对于小三角形而言),我所实施的方法更好 哪种方法更好?我认为作业要求的方法会更好。您的方法需要多次乘法来计算三角形的每个元素。对于需要计算的三角形的每一行,该数字将增加 然而,赋值方法要求对三角形的每个元素进行一次加法 如果我理

我有一个Java编程作业

我通过生成一个nCr()函数来实现它,然后使用double for循环打印出三角形

但是,分配要求创建一个不均匀的2d数组,然后将前几行中的两个数字相加,然后打印出数组,从而填充该数组

我知道我必须按照作业要求的方式完成作业,但我有一点感觉(至少对于小三角形而言),我所实施的方法更好


哪种方法更好?

我认为作业要求的方法会更好。您的方法需要多次乘法来计算三角形的每个元素。对于需要计算的三角形的每一行,该数字将增加


然而,赋值方法要求对三角形的每个元素进行一次加法

如果我理解您的问题,您正在尝试比较两种生成Pascal三角形的方法:

  • 通过运行
    nCr
    函数填充三角形的每个单元格
  • 通过简单的加法填充每个单元格,一次生成三角形
  • 第二种方法似乎更好。我错过什么了吗?即使在
    nCr
    函数中使用memonization,这些调用也会有开销

  • 通过使用递归

    /*通过使用递归*/
    类递归Pascal{
    公共静态void main(字符串参数[]){
    int n=100;
    对于(int i=0;i对于(int j=0;j使用nCr我根本没有生成数组。啊,我现在明白了。我一定是误读了。不过,我想说的是,每个单元格两次查找和一次加法几乎总是一个胜利。你的作业可能需要你在内存中保留整个三角形,但实际上你只需要保留最后两行。因为n和k的值变大了呃,
    nCr
    函数的常数增加。增量方法不会发生这种情况。