求存储在array数组中的矩阵两条对角线上元素之和。Array数组自行初始化。
时间: 2024-10-16 12:19:57 浏览: 19
在二维数组(矩阵)中,我们可以计算主对角线(从左上到右下)和副对角线(从左下到右上)上的元素之和。假设给定的`array`是一个m x n的矩阵,我们可以通过遍历数组并逐行累加两个对角线上的元素来实现这个任务。
以下是步骤:
1. 初始化两个变量,分别用于存储主对角线(记为main_diag_sum)和副对角线(记为secondary_diag_sum),初始值都设为0。
2. 使用两层循环,外层遍历每一行,内层遍历每一列。
3. 对于主对角线,当行索引等于列索引时,将该位置的元素加到`main_diag_sum`上。
4. 对于副对角线,当行索引加上列索引等于矩阵尺寸减一时,将该位置的元素加到`secondary_diag_sum`上。这是因为对于一个大小为(m, n)的矩阵,副对角线的最后一个元素位于第n行第m列。
5. 遍历结束后,`main_diag_sum`就是主对角线的总和,`secondary_diag_sum`是副对角线的总和。
```python
def sum_of_diagonals(array):
m, n = len(array), len(array[0])
main_diag_sum = 0
secondary_diag_sum = 0
for i in range(m):
for j in range(n):
if i == j: # 主对角线
main_diag_sum += array[i][j]
elif i + j == m - 1: # 副对角线
secondary_diag_sum += array[i][j]
return main_diag_sum, secondary_diag_sum
# 示例
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
main_diag, secondary_diag = sum_of_diagonals(matrix)
```
阅读全文