Java 生成pascal';s三角形(上述两种方式)
我有一个Java编程作业 我通过生成一个nCr()函数来实现它,然后使用double for循环打印出三角形 但是,分配要求创建一个不均匀的2d数组,然后将前几行中的两个数字相加,然后打印出数组,从而填充该数组 我知道我必须按照作业要求的方式完成作业,但我有一点感觉(至少对于小三角形而言),我所实施的方法更好Java 生成pascal';s三角形(上述两种方式),java,arrays,combinations,pascals-triangle,Java,Arrays,Combinations,Pascals Triangle,我有一个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
函数的常数增加。增量方法不会发生这种情况。