Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm tổng đường chéo ma trận trong Python

Giả sử ta có ma trận vuông, tìm tổng các đường chéo. Chỉ cộng các phần tử trên đường chéo chính và đường chéo phụ, bỏ qua phần tử giao nhau (nếu có).

Ví dụ ma trận 4x4:

10596
81532
38123
21173
Đường chéo chính: [10,15,12,3] tổng=40. Đường chéo phụ: [6,3,8,2] tổng=19. Tổng cộng = 59.

Giải thuật

  1. m := len(matrix)
  2. Nếu m == 1: trả về matrix[0][0]
  3. count := 0
  4. For i từ 0 đến m-1:
    • count += matrix[i][i] (chéo chính)
    • count += matrix[i][-1-i] (chéo phụ)
  5. Nếu m lẻ: count -= matrix[m//2][m//2] (trừ phần tử giao)
  6. Trả về count

Ví dụ (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))

Input

[[10,5,9,6],[8,15,3,2],[3,8,12,3],[2,11,7,3]]

Output

59