在 Python 中编写查找矩阵对角线和的程序
假设我们有一个方阵,我们必须找到矩阵对角线的和。因此只包括主对角线上所有元素和次对角线上所有元素的和,并忽略交叉的元素。
所以,如果输入如下
10 | 5 | 9 | 6 |
---|---|---|---|
8 | 15 | 3 | 2 |
3 | 8 | 12 | 3 |
2 | 11 | 7 | 3 |
则输出将为主对角线的元素为 [10,15,12,3],总和为 40,次对角线的元素为 [6,3,8,2],总和为 19,因此总和为 59。
要解决这个问题,我们将遵循以下步骤 −
- m:矩阵的行数
-
如果 m 与 1 相同,则
- 返回 matrix[0,0]
- count:计数器
-
for i in range(0,m-1)做以下操作
- count:=count+matrix[i,i]
-
count:=count+matrix[i,(-1-i)]
- count:=count+matrix[i,i]
-
如果 m 是奇数,则
- ind:= m/2 的商
-
count:=count-matrix[ind,ind]
-
返回计数器
更多Python相关文章,请阅读:Python 教程
示例(Python)
请查看以下实现,以获取更好的理解 −
def solve(matrix):
m = len(matrix)
if m == 1: return matrix[0][0]
count = 0
for i in range(m):
count += matrix[i][i]
count += matrix[i][-1 - i]
if m % 2 == 1: count -= matrix[m // 2][m // 2]
return count
matrix = [[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3],]
print(solve(matrix))
输入
[[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3]]
输出
59