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