【问题标题】:how to calculate the sum of elements after the diagonal in 2D array in java?如何在java中计算二维数组中对角线后的元素总和?
【发布时间】:2015-02-23 18:06:16
【问题描述】:

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

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

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

【问题讨论】:

  • “由于返回的总和等于 0,拖曳建议不起作用”是什么意思?如果 Jean 的方法没有返回元素的总和,您可能在其他地方出错。
  • 我编辑我的问题并在另一篇文章中显示所有代码,如果您可以查看它并提供帮助,我将不胜感激this is the link

标签: java for-loop sum multidimensional-array


【解决方案1】:

您希望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];
    }
}

【讨论】:

  • 我建议i + 1 而不是i + i
  • 拖曳建议不起作用,因为返回的总和等于 0
猜你喜欢
  • 2018-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-07
  • 2017-04-18
相关资源
最近更新 更多