我想在java程序中使用for循环添加NxN矩阵antidiagonal元素。
这段代码(2个条件)不起作用,因为它总是说循环执行时sum2 = 0。
for (int i=0,j=t-1; i<t && j==0; i++, j--) {
sum2 = sum2 + aNumber[i][j];
}
相反,这一个(一个条件)运作良好。
for (int i=0, j=t-1; i<t ; i++, j--) {
sum2 = sum2 + aNumber[i][j];
}
为什么第一个代码不起作用?
答案 0 :(得分:2)
在第一个示例中,循环会在j != 0
后立即结束,如果t > 1
这意味着它将立即结束,而不会进行任何迭代。
答案 1 :(得分:1)
尝试这样的事情:
int maxIndex = matrix.length - 1;
int sum = 0;
for (int i = 0; i <= maxIndex; i++) {
sum += matrix[i][maxIndex - i];
}
这取决于每个反对角元素的索引之和恰好等于N的事实。