Given a square matrix mat consisting of integers of size NxN, the task is to calculate the product between the sums of its diagonal.
Examples:
Input: mat[][] = {{5, 8, 1}, {5, 10, 3}, {-6, 17, -9}} Output: 30 Sum of primary diagonal = 5 + 10 + (-9) = 6. Sum of secondary diagonal = 1 + 10 + (-6) = 5. Product = 6 * 5 = 30. Input: mat[][] = {{22, -8, 11}, {55, 87, -1}, {-61, 69, 19}} Output: 4736
Naive approach: Traverse the entire matrix and find the diagonal elements. Calculate the sums across the two diagonals of a square matrix. Then, just take the product of the two sums obtained.
Time complexity: O(N2)
Naive approach: Traverse just the diagonal elements instead of the entire matrix by observing the pattern in the indices of the diagonal elements.
Below is the implementation of this approach:
// C++ program to find the product // of the sum of diagonals. #include <bits/stdc++.h> using namespace std;
// Function to find the product // of the sum of diagonals. long long product(vector<vector< int >> &mat, int n)
{ // Initialize sums of diagonals
long long d1 = 0, d2 = 0;
for ( int i = 0; i < n; i++)
{
d1 += mat[i][i];
d2 += mat[i][n - i - 1];
}
// Return the answer
return 1LL * d1 * d2;
} // Driven code int main()
{ vector<vector< int >> mat = {{ 5, 8, 1},
{ 5, 10, 3},
{ -6, 17, -9}};
int n = mat.size();
// Function call
cout << product(mat, n);
return 0;
} |
// Java program to find the product // of the sum of diagonals. class GFG{
// Function to find the product // of the sum of diagonals. static long product( int [][]mat, int n)
{ // Initialize sums of diagonals
long d1 = 0 , d2 = 0 ;
for ( int i = 0 ; i < n; i++)
{
d1 += mat[i][i];
d2 += mat[i][n - i - 1 ];
}
// Return the answer
return 1L * d1 * d2;
} // Driven code public static void main(String[] args)
{ int [][]mat = {{ 5 , 8 , 1 },
{ 5 , 10 , 3 },
{ - 6 , 17 , - 9 }};
int n = mat.length;
// Function call
System.out.print(product(mat, n));
} } // This code is contributed by 29AjayKumar |
# Python3 program to find the product # of the sum of diagonals. # Function to find the product # of the sum of diagonals. def product(mat,n):
# Initialize sums of diagonals
d1 = 0
d2 = 0
for i in range (n):
d1 + = mat[i][i]
d2 + = mat[i][n - i - 1 ]
# Return the answer
return d1 * d2
# Driven code if __name__ = = '__main__' :
mat = [[ 5 , 8 , 1 ],
[ 5 , 10 , 3 ],
[ - 6 , 17 , - 9 ]]
n = len (mat)
# Function call
print (product(mat, n))
# This code is contributed by mohit kumar 29 |
// C# program to find the product // of the sum of diagonals. using System;
class GFG{
// Function to find the product // of the sum of diagonals. static long product( int [,]mat, int n)
{ // Initialize sums of diagonals
long d1 = 0, d2 = 0;
for ( int i = 0; i < n; i++)
{
d1 += mat[i, i];
d2 += mat[i, n - i - 1];
}
// Return the answer
return 1L * d1 * d2;
} // Driven code public static void Main(String[] args)
{ int [,]mat = {{ 5, 8, 1},
{ 5, 10, 3},
{ -6, 17, -9}};
int n = mat.GetLength(0);
// Function call
Console.Write(product(mat, n));
} } // This code is contributed by Princi Singh |
<script> // Javascript program to find the product // of the sum of diagonals. // Function to find the product // of the sum of diagonals. function product(mat, n)
{ // Initialize sums of diagonals
let d1 = 0, d2 = 0;
for (let i = 0; i < n; i++)
{
d1 += mat[i][i];
d2 += mat[i][n - i - 1];
}
// Return the answer
return d1 * d2;
} // Driven code let mat = [[ 5, 8, 1],
[ 5, 10, 3],
[ -6, 17, -9]];
let n = mat.length;
// Function call
document.write(product(mat, n));
// This code is contributed by rishavmahato348. </script> |
30
Time complexity: O(N)
Auxiliary Space: O(1) because using constant variables