Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 위쪽 삼각형과 아래쪽 삼각형의 합

<시간/>

이 문제에서는 행렬이 주어집니다. 우리의 임무는 위 삼각형과 아래 삼각형의 합을 출력하는 프로그램을 만드는 것입니다.

하부 삼각형

M00                     0             0       …        0
M10                     M11               0       …        0
M20                     M21               M22      …        0
…
Mrow0                   Mrow1             Mrow2      … Mrow col

위쪽 삼각형

M00                     M01               M02          …       M0col
0                 M11               M12          …       M1col
0                 0             M22          …       M2col
…
0                 0             0         …     Mrow col

문제를 이해하기 위해 예를 들어 보겠습니다.

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

이 문제에 대한 간단한 솔루션입니다. 루프를 사용하여 위쪽 삼각형 요소와 아래쪽 삼각형 요소의 배열을 탐색합니다. 두 개의 개별 변수인 lSum 및 uSum에서 합계를 계산합니다.

예시

솔루션의 작동을 설명하는 프로그램,

#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;
}

출력

Sum of the upper triangle is 18
Sum of the lower triangle is 29