为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA特定于Array 2D的循环

JAVA特定于Array 2D的循环

慕森王 2021-04-01 14:11:48
我有这个数组: int[][] multi = new int[][]{              { 3, 4, 2},              { 2, 2, 5 },              { 1, 2 }            };我想打印每个单元的产品。很难解释,所以让我们看一些例子:对于我的桌子,我需要打印:        6 //(3*2*1)        12 //(3*2*2)        6 //(3*2*1)        12 //(3*2*2)        15 //(3*5*1)        30 //(3*5*2)        8 //(4*2*1)        16 //(4*2*2)        8 //(4*2*1)        16 //(4*2*2)        20 //(4*5*1)        40 //(4*5*2)...表的大小可以改变,我需要一个通用的东西。这是我的开始,但没有满足我的需要。这是逐行循环...   for (int i = 0; i<multi[0].length; i++) {           for (int k = 0; k < multi.length; k++) {                for (int l = 0; l < multi[k].length; l++ ) {                    System.err.println(multi[k][l]);                }               }       }
查看完整描述

2 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

我的事情是,recursively如果数组的维数不固定,则必须这样做。我想出了动态维数的代码2D array


public class HelloWorld{

    static int[][] multi = new int[][]{

              { 3, 4, 2},

              { 2, 2, 5 },

              { 1, 2 }

    };

    static public void pattern(int row,int multip) {

        if(row >= multi.length) {

            System.out.println(multip);

            return ;

        }

        for(int i = 0; i<multi[row].length;i++) {

            multip*=multi[row][i];

            row+=1;

            pattern(row,multip);

            row-=1;

            multip/=multi[row][i];

        }

    }

    public static void main(String []args){

        pattern(0,1);

    }

}

如果尺寸固定,则也可以使用上面的逻辑进行操作,但是如果要进行迭代,则必须在循环内部重复创建循环。


查看完整回答
反对 回复 2021-04-21
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信