我是Java新手。如何在2D矩阵中找到对角线的总和(看起来像/)?
假设矩阵看起来像这样:
4 6 7
2 4 7
5 2 7
对角线的总和(看起来像\)是15(4 + 4 + 7)。 这是我对角线的代码:
public static int Diagonal(int m[][]) {
int sum = 0;
for(int row = 0; row < m[0].length; row++) {
sum += m[row][row];
}
return sum;
}
如何找到另一个看起来像(/)的对角线之和?
答案 0 :(得分:2)
您可以使用此代码
public static int Diagonal2(int m[][]) {
int sum=0;
for(int row = 0; row < m[0].length; row++) {
sum += m[row][m.length - row - 1];
}
return sum;
}
答案 1 :(得分:0)
喜欢做
public class Main {
public static void main(String[] args) {
int[][] matrix = { { 4, 6, 7 }, { 2, 4, 7 }, { 5, 2, 7 } };
StringBuilder sb = new StringBuilder();
int sum = sumDiagonal(matrix, sb);
sb.deleteCharAt(sb.length() - 1);
System.out.println("The sum of the diagonal is " + sum + " (" + sb + ")");
}
public static int sumDiagonal(int m[][], StringBuilder sb) {
int sum = 0;
for (int row = 0; row < m[0].length; row++) {
sum += m[row][m[0].length - row - 1];
sb.append(m[row][m[0].length - row - 1] + "+");
}
return sum;
}
}
输出
The sum of the diagonal is 16 (7+4+5)