如何计算java中2D数组对角线后的元素总和?

时间:2014-12-26 12:10:24

标签: java for-loop sum multidimensional-array

我有一个函数,我需要计算2D数组中对角线之后的元素总和,但问题是该函数返回对角线中元素的总和。

我需要的是,如果我有这样的矩阵:

1 2 3
4 5 6
7 8 9

对角线的元素是= 1 5 9

我需要的是计算这些对角线后面的数字,所以它会是这样的:

1 2 3
  4 5 6
  7 8 9

sum = 2+3+6 = 11

如果有人能帮助我解决问题,我将不胜感激。

这是我的代码:

public int calculate(){

        int sum = 0;

        for(int row = 0; row <matrix.length; row++){
            for(int col = 0; col < matrix[row].length; col++){
                if(row == col){
                 sum = sum + row+1 ;
                }
            }
        }
        System.out.println("the sum is: " + sum );
        return sum;
    }

public static void main(String[] args) {

    int[][] ma = new int[2][2];
    Question2 q2 = new Question2(2, 2, ma);
    q2.fill();
    q2.calculate();
}

输出为:

2 1 
2 1 
the sum is: 3

1 个答案:

答案 0 :(得分:3)

你希望col遍历所有元素,总是大于对角线。

因此请尝试:

int sum = 0;
for(int i = 0 ; i < a.length ; ++i) {
    for(int j = i + 1 ; j < a[i].length ; ++j) {
        sum += a[i][j];
    }
}