设计一个算法,求二维数组两条对角线上的元素之和
时间: 2024-10-16 09:03:30 浏览: 54
python实现二维数组的对角线遍历
5星 · 资源好评率100%
设计一个算法来计算二维数组(矩阵)的两条对角线上(主对角线和副对角线)的元素之和,可以按照以下步骤来进行:
1. 定义一个函数 `sum_diagonals(matrix)`,其中 `matrix` 是一个二维列表或数组。
2. 初始化两个变量,`main_diagonal_sum` 和 `secondary_diagonal_sum`,分别用于存储主对角线和副对角线的元素和。
3. 遍历二维数组,对于每个元素 `(i, j)`,执行以下操作:
- 对于主对角线 (从左上到右下) 的元素,其索引为 `(i, i)`,将值添加到 `main_diagonal_sum` 中。
- 对于副对角线 (从左下到右上) 的元素,其索引为 `(j, n-i-1)`,其中 `n` 是数组的行数(等于列数),因为数组是方阵,所以可以直接通过 `j` 计算出对应的列。将值添加到 `secondary_diagonal_sum` 中。
4. 遍历结束后,返回一个元组 `(main_diagonal_sum, secondary_diagonal_sum)`,包含两条对角线的和。
以下是Python的实现示例:
```python
def sum_diagonals(matrix):
main_diagonal_sum = 0
secondary_diagonal_sum = 0
n = len(matrix)
for i in range(n):
main_diagonal_sum += matrix[i][i]
secondary_diagonal_sum += matrix[i][n - 1 - i] if n > i else 0
return main_diagonal_sum, secondary_diagonal_sum
# 测试示例
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
result = sum_diagonals(matrix)
print(f"主对角线和: {result[0]}, 副对角线和: {result[1]}")
阅读全文