Sum of upper triangle and lower triangle
Last Updated :
16 Feb, 2023
Given a N x M matrix. The task is to print the sum of upper and lower triangular elements (i.e elements on the diagonal and the upper and lower elements).
Examples :
Input: {{6, 5, 4}, {1, 2, 5}, {7, 9, 7}}
Output:
Upper sum is 29
Lower sum is 32
Input: {{1, 1, 1}, {2, 2, 2}, {3, 3, 3}}
Output:
Upper sum is 10
Lower sum is 14
Approach: To solve the problem follow the below approach
Traverse the matrix and calculate the sum for upper and lower triangles accordingly.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
void sum( int mat[3][3], int r, int c)
{
int i, j;
int upper_sum = 0;
int lower_sum = 0;
for (i = 0; i < r; i++)
for (j = 0; j < c; j++) {
if (i <= j) {
upper_sum += mat[i][j];
}
}
printf ( "Upper sum is %d\n" , upper_sum);
for (i = 0; i < r; i++)
for (j = 0; j < c; j++) {
if (j <= i) {
lower_sum += mat[i][j];
}
}
printf ( "Lower sum is %d" , lower_sum);
}
int main()
{
int r = 3;
int c = 3;
int mat[3][3]
= { { 6, 5, 4 }, { 1, 2, 5 }, { 7, 9, 7 } };
sum(mat, r, c);
return 0;
}
|
Java
class GFG {
static void sum( int mat[][], int r, int c)
{
int i, j;
int upper_sum = 0 ;
int lower_sum = 0 ;
for (i = 0 ; i < r; i++)
for (j = 0 ; j < c; j++) {
if (i <= j) {
upper_sum += mat[i][j];
}
}
System.out.println( "Upper sum is " + upper_sum);
for (i = 0 ; i < r; i++)
for (j = 0 ; j < c; j++) {
if (j <= i) {
lower_sum += mat[i][j];
}
}
System.out.print( "Lower sum is " + lower_sum);
}
public static void main(String[] args)
{
int r = 3 ;
int c = 3 ;
int mat[][]
= { { 6 , 5 , 4 }, { 1 , 2 , 5 }, { 7 , 9 , 7 } };
sum(mat, r, c);
}
}
|
Python3
def Sum (mat, r, c):
i, j = 0 , 0
upper_sum = 0
lower_sum = 0
for i in range (r):
for j in range (c):
if (i < = j):
upper_sum + = mat[i][j]
print ( "Upper sum is " , upper_sum)
for i in range (r):
for j in range (c):
if (j < = i):
lower_sum + = mat[i][j]
print ( "Lower sum is " , lower_sum)
r = 3
c = 3
mat = [[ 6 , 5 , 4 ],
[ 1 , 2 , 5 ],
[ 7 , 9 , 7 ]]
Sum (mat, r, c)
|
C#
using System;
class GFG {
static void sum( int [, ] mat, int r, int c)
{
int i, j;
int upper_sum = 0;
int lower_sum = 0;
for (i = 0; i < r; i++)
for (j = 0; j < c; j++) {
if (i <= j) {
upper_sum += mat[i, j];
}
}
Console.WriteLine( "Upper sum is " + upper_sum);
for (i = 0; i < r; i++)
for (j = 0; j < c; j++) {
if (j <= i) {
lower_sum += mat[i, j];
}
}
Console.Write( "Lower sum is " + lower_sum);
}
public static void Main()
{
int r = 3;
int c = 3;
int [, ] mat
= { { 6, 5, 4 }, { 1, 2, 5 }, { 7, 9, 7 } };
sum(mat, r, c);
}
}
|
PHP
<?php
function sum( $mat , $r , $c )
{
$upper_sum = 0;
$lower_sum = 0;
for ( $i = 0; $i < $r ; $i ++)
for ( $j = 0; $j < $c ; $j ++)
{
if ( $i <= $j )
{
$upper_sum += $mat [ $i ][ $j ];
}
}
echo "Upper sum is " . $upper_sum . "\n" ;
for ( $i = 0; $i < $r ; $i ++)
for ( $j = 0; $j < $c ; $j ++)
{
if ( $j <= $i )
{
$lower_sum += $mat [ $i ][ $j ];
}
}
echo "Lower sum is " . $lower_sum ;
}
$r = 3;
$c = 3;
$mat = array ( array (6, 5, 4),
array (1, 2, 5),
array (7, 9, 7));
sum( $mat , $r , $c );
?>
|
Javascript
<script>
function sum(mat,r,c)
{
let i, j;
let upper_sum = 0;
let lower_sum = 0;
for (i = 0; i < r; i++)
for (j = 0; j < c; j++) {
if (i <= j) {
upper_sum += mat[i][j];
}
}
document.write( "Upper sum is " + upper_sum+ "<br/>" );
for (i = 0; i < r; i++)
for (j = 0; j < c; j++) {
if (j <= i) {
lower_sum += mat[i][j];
}
}
document.write( "Lower sum is " +lower_sum);
}
let r = 3;
let c = 3;
let mat = [[ 6, 5, 4 ],
[ 1, 2, 5 ],
[ 7, 9, 7 ]];
sum(mat, r, c);
</script>
|
Output
Upper sum is 29
Lower sum is 32
Time Complexity: O(r * c), Where r and c represent the number of rows and columns of the given matrix.
Auxiliary Space: O(1), No extra space is required, so it is a constant.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...