Giả sử chúng ta có một ma trận vuông; chúng ta phải tìm tổng các đường chéo của ma trận. Vì vậy, chỉ bao gồm tổng của tất cả các phần tử trên đường chéo chính và tất cả các phần tử trên đường chéo phụ và bỏ qua phần tử giao nhau.
Vì vậy, nếu đầu vào giống như
10 | 5 | 9 | 6 |
8 | 15 | 3 | 2 |
3 | 8 | 12 | 3 |
2 | 11 | 7 | 3 |
thì đầu ra sẽ là Các phần tử đường chéo chính là [10,15,12,3] tổng là 40, đường chéo phụ [6,3,8,2] tổng là 19, do đó tổng cộng là 59.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
m:=số hàng của ma trận
-
nếu m giống với 1 thì
-
ma trận trả về [0, 0]
-
-
đếm:=0
-
đối với tôi trong phạm vi từ 0 đến m - 1, hãy thực hiện
-
count:=count + matrix [i, i]
-
count:=count + matrix [i, (-1 - i)]
-
-
nếu m là số lẻ thì
-
ind:=thương số của m / 2
-
count:=count - ma trận [ind, ind]
-
-
số lần trả lại
Ví dụ (Python)
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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))
Đầu vào
[[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3]]
Đầu ra
59