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


更新日期:2020 年 8 月 17 日

988 查看

开启您的 职业生涯

完成课程即可获得认证

开始
广告