求一个(n*n)矩阵对角元素之和
时间: 2024-10-06 12:03:47 浏览: 26
求一个 n * n 矩阵的对角元素之和,意味着你需要计算矩阵中从左上角到右下角以及从右上角到左下角的两条对角线上的所有元素加起来。这是一个基础的数组操作,可以通过遍历矩阵并只累加对角线上的元素来完成。
例如,如果你有一个二维数组 `matrix`:
```python
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
```
对角元素之和就是 `1 + 5 + 9`。在Python中,你可以这样做:
```python
def sum_diagonal(matrix):
total = 0
for i in range(len(matrix)):
total += matrix[i][i] # 对左上到右下的对角线
if i < len(matrix) - 1: # 如果不是最后一行,添加第二条对角线元素(如果存在)
total += matrix[i][len(matrix) - 1 - i] # 右上到左下的对角线
return total
# 使用上面的例子
print(sum_diagonal(matrix)) # 输出:25
```
相关问题
求一个(n*n)矩阵对角元素之和java
在Java中,计算一个(n * n)矩阵的对角元素之和可以分为两步:首先创建一个二维数组表示矩阵,然后遍历这个数组,只累加对角线上的元素。
以下是一个简单的示例代码:
```java
public class DiagonalSum {
public static int sumDiagonal(int[][] matrix) {
if (matrix == null || matrix.length == 0) {
return 0;
}
int sum = 0;
for (int i = 0; i < matrix.length; i++) {
// 对左上到右下的对角线求和
sum += matrix[i][i];
// 如果矩阵是奇数行偶数列,则还需要考虑从右下到左上的对角线
if (i + 1 < matrix.length) {
sum += matrix[matrix.length - 1 - i][i];
}
}
return sum;
}
public static void main(String[] args) {
int[][] matrixExample = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
System.out.println("矩阵对角线元素之和: " + sumDiagonal(matrixExample));
}
}
```
在这个例子中,`sumDiagonal`方法接受一个二维数组作为输入,遍历每个元素,如果当前索引(i, i)位于对角线上就将其加入总和。对于奇数行偶数列的矩阵,还需要加上另一个对角线的元素(即倒数第一个元素与当前位置相对应的那个)。
java求一个(n*n)矩阵对角元素之和。
在Java中,计算一个n * n矩阵的对角元素之和可以通过循环遍历矩阵并累加对角线上的元素来完成。这里有一个简单的示例:
```java
public class Main {
public static int sumDiagonal(int[][] matrix) {
if (matrix == null || matrix.length == 0) {
return 0;
}
int n = matrix.length;
int sum = 0;
// 遍历主对角线和副对角线
for (int i = 0; i < n; i++) {
sum += matrix[i][i]; // 主对角线元素
if (i != 0 && i < n - 1) { // 如果不是第一行或最后一列
sum += matrix[i][n - 1 - i]; // 副对角线元素
}
}
return sum;
}
public static void main(String[] args) {
int[][] matrixExample = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
System.out.println("对角元素之和: " + sumDiagonal(matrixExample));
}
}
```
在这个例子中,`sumDiagonal`函数接收一个二维数组(矩阵),然后分别累加主对角线(从左上到右下)和副对角线(从左下到右上)的元素。最后返回总和。