Computer >> Máy Tính >  >> Lập trình >> C ++

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

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