乘以java中矩阵的对角线值

时间:2015-12-13 13:20:09

标签: java for-loop matrix multidimensional-array int

我想将Matrix的2个对角线相乘。但我无法得到矩阵的对角线。比如在给定的代码中,两个对角线是d1=5*5*9。和d2=3*5*7然后我将使用 d1 d2 值进行进一步处理。

怎么做。 注意:矩阵大小可以与 3x3 不同,但可以 5x5

private static int diagonalMultiply(int [][]arr1){
    int[][]  arr= {
       {5,2,3},
       {4,5,6},    
       {7,8,9}
   };
for ( int x = 0; x < arr.length; x++) //stepping along the x axis again.
{
    for ( int y = 0; y < arr[x].length; y++) // stepping along the y axis.
    {
        System.out.print(arr[x][y]+" ");
    }    
}
    return 0;
}

1 个答案:

答案 0 :(得分:2)

N×N矩阵的对角线具有N个元素。一对嵌套循环,每个循环从0N-1,覆盖N 2 元素。这意味着您需要一个循环而不是两个循环。

两个对角线都可以在一个循环中检索。下降对角线的索引为(i, i),而升序对角线的索引为(N-i-1, i)

int N = arr.length;
for ( int i = 0; i < N ; i++) {
    System.out.println(arr[i][i]+" "+arr[N-i-1][i]);
}

Demo.