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

Tổng tam giác trên và tam giác dưới của ma trận trong C++

Cho ma trận vuông kích thước N x N. Nhiệm vụ tính tổng các phần tử thuộc tam giác trên (kể cả đường chéo chính) và tam giác dưới (kể cả đường chéo chính).

Định nghĩa

  • Tam giác trên: Các phần tử mat[i][j] với i ≤ j.
  • Tam giác dưới: Các phần tử mat[i][j] với i ≥ j.

Lưu ý: Đường chéo chính thuộc cả hai tam giác.

Ví dụ minh họa

Input: {{5, 1, 6}, {8, 2, 0}, {3, 7, 4}}
Output:
Tổng tam giác trên = 18 (5+1+6+2+0+4)
Tổng tam giác dưới = 29 (5+8+2+3+7+4)

Thuật toán

Duyệt qua tất cả phần tử mat[i][j]:

  • Nếu i <= j → cộng vào upperSum
  • Nếu i >= j → cộng vào lowerSum
Độ phức tạp O(N²).

Chương trình C++

#include <iostream>
using namespace std;

void sumTriangles(int mat[3][3], int n) {
    int upperSum = 0, lowerSum = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (i <= j) upperSum += mat[i][j];
            if (i >= j) lowerSum += mat[i][j];
        }
    }
    cout << "Tong tam giac tren: " << upperSum << endl;
    cout << "Tong tam giac duoi: " << lowerSum << endl;
}

int main() {
    int mat[3][3] = {{5, 1, 6}, {8, 2, 0}, {3, 7, 4}};
    sumTriangles(mat, 3);
    return 0;
}

Kết quả

Tong tam giac tren: 18
Tong tam giac duoi: 29