Я вижу, вы использовали диагонали в своем вопросе. Матрица имеет две диагонали: ведущая диагональ (\
) и антидиагональ (/
).
Предположим, ваша матрица, 2d-массив или2d arrayList Независимо от того, что вы назвали, это матрица i * i
, которую вы можете вычислить в цикле:
int leadingDiagonalSum = 0, antiDiagonalSum = 0;
int size = arr.size();
for (int i = 0; i < size; i++) {
leadingDiagonalSum += arr.get(i).get(i);
antiDiagonalSum += arr.get(i).get(size - i - 1);
}
Вышеприведенные коды легко понять. Если вам действительно нужна сумма диагоналей , вы можете добавить две переменные.
Однако вы должны проверить size
, если это нечетное число, вы должны вычесть центральный элемент один раз после суммы.