我想将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;
}
答案 0 :(得分:2)
N×N矩阵的对角线具有N个元素。一对嵌套循环,每个循环从0
到N-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]);
}