我有一个函数,我需要计算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
答案 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];
}
}