用java写一道算法题:定义一个有9个元素数组,求对角线上元素之和。
时间: 2023-06-20 21:03:41 浏览: 101
求给定数组主副对角线元素之和,每个元素只参加一次计算。
可以使用一个简单的循环来遍历数组中的对角线上的元素,然后将它们相加。
Java代码如下:
```java
public static int diagonalSum(int[][] matrix) {
int sum = 0;
for (int i = 0; i < matrix.length; i++) {
sum += matrix[i][i]; // 左上到右下的对角线
sum += matrix[i][matrix.length - 1 - i]; // 右上到左下的对角线
}
return sum;
}
// 测试
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
System.out.println(diagonalSum(matrix)); // 输出 25
}
```
以上代码中,我们定义了一个diagonalSum函数,它接收一个二维数组matrix作为参数,并返回对角线上元素之和。在函数中,我们使用了一个for循环来遍历数组中的对角线上的元素:
- 对于左上到右下的对角线,它们的行索引和列索引是相等的,因此我们可以使用matrix[i][i]来访问它们。
- 对于右上到左下的对角线,它们的行索引和列索引之和为数组的长度减一,因此我们可以使用matrix[i][matrix.length - 1 - i]来访问它们。
最后,我们将这两条对角线上的元素之和相加,并返回结果。
阅读全文