Trong bài toán này, chúng ta được đưa ra một ma trận. Nhiệm vụ của chúng ta là tạo một chương trình để in ra tổng của tam giác trên và tam giác dưới.
Hình tam giác dưới
M00 0 0 … 0 M10 M11 0 … 0 M20 M21 M22 … 0 … Mrow0 Mrow1 Mrow2 … Mrow col
Hình tam giác trên
M00 M01 M02 … M0col 0 M11 M12 … M1col 0 0 M22 … M2col … 0 0 0 … Mrow col
Hãy lấy một ví dụ để hiểu vấn đề,
Input: {{5, 1, 6} {8, 2, 0} {3, 7, 4}} Output: upper triangle sum = 18 lower triangle sum = 29 Explanation: Sum of upper triangle sum = 5 + 1 + 6 + 2 + 0 + 4 = 18 Sum of lower triangle sum = 5 + 8 + 2 + 3 + 7 + 4 = 29
Một giải pháp đơn giản cho vấn đề này. Chúng tôi sẽ sử dụng vòng lặp để duyệt qua mảng trong các phần tử hình tam giác trên và các phần tử hình tam giác dưới. Tính tổng trong hai biến riêng biệt, lSum và uSum.
Ví dụ
Chương trình minh họa hoạt động của giải pháp của chúng tôi,
#include <iostream> using namespace std; int row = 3; int col = 3; void sum(int mat[3][3]) { int i, j; int uSum = 0; int lSum = 0; for (i = 0; i < row; i++) for (j = 0; j < col; j++) { if (i <= j) { uSum += mat[i][j]; } } cout<<"Sum of the upper triangle is "<<uSum<<endl; for (i = 0; i < row; i++) for (j = 0; j < col; j++) { if (j <= i) { lSum += mat[i][j]; } } cout<<"Sum of the lower triangle is "<<lSum<<endl; } int main() { int mat[3][3] = { { 5, 1, 6 }, { 8, 2, 0 }, { 3, 7, 4 }}; sum(mat); return 0; }
Đầu ra
Sum of the upper triangle is 18 Sum of the lower triangle is 29