Given an integer square matrix of odd dimensions (3 * 3, 5 * 5). The task is to find the product of the middle row & middle column elements.
Examples:
Input: mat[][] = {{2, 1, 7}, {3, 7, 2}, {5, 4, 9}} Output: Product of middle row = 42 Product of middle column = 28 Explanation: Product of Middle row elements (3*7*2) Product of Middle Column elements (1*7*4) Input: mat[][] = { {1, 3, 5, 6, 7}, {3, 5, 3, 2, 1}, {1, 2, 3, 4, 5}, {7, 9, 2, 1, 6}, {9, 1, 5, 3, 2}} Output: Product of middle row = 120 Product of middle column = 450
Approach:
As the given matrix is of odd dimensions, so the middle row and column will be always at the n/2th. So, Run a loop from i = 0 to N and produce all the elements of the middle row
i.e. row_prod *= mat[n / 2][i]. Similarly, the product of elements of the middle column will be col_prod *= mat[i][n / 2].
Below is the implementation of the above approach:
C++
// C++ program to find product of // middle row and middle column in matrix #include <iostream> using namespace std; const int MAX = 100; void middleProduct( int mat[][MAX], int n) { // loop for product of row and column int row_prod = 1, col_prod = 1; for ( int i = 0; i < n; i++) { row_prod *= mat[n / 2][i]; col_prod *= mat[i][n / 2]; } // Print result cout << "Product of middle row = " << row_prod << endl; cout << "Product of middle column = " << col_prod; } // Driver code int main() { int mat[][MAX] = { { 2, 1, 7 }, { 3, 7, 2 }, { 5, 4, 9 } }; middleProduct(mat, 3); return 0; } |
C
// C program to find product of // middle row and middle column in matrix #include <stdio.h> #define MAX 100 void middleProduct( int mat[][MAX], int n) { // loop for product of row and column int row_prod = 1, col_prod = 1; for ( int i = 0; i < n; i++) { row_prod *= mat[n / 2][i]; col_prod *= mat[i][n / 2]; } // Print result printf ( "Product of middle row = %d\n" ,row_prod); printf ( "Product of middle column = %d\n" ,col_prod); } // Driver code int main() { int mat[][MAX] = { { 2, 1, 7 }, { 3, 7, 2 }, { 5, 4, 9 } }; middleProduct(mat, 3); return 0; } // This code is contributed by kothavvsaakash. |
Java
// Java program to find product of // middle row and middle column in matrix import java.io.*; class GFG { static int MAX = 100 ; static void middleProduct( int mat[][], int n) { // loop for product of row and column int row_prod = 1 , col_prod = 1 ; for ( int i = 0 ; i < n; i++) { row_prod *= mat[n / 2 ][i]; col_prod *= mat[i][n / 2 ]; } // Print result System.out.print( "Product of middle row = " + row_prod); System.out.print( "Product of middle column = " + col_prod); } // Driver code public static void main (String[] args) { int mat[][] = { { 2 , 1 , 7 }, { 3 , 7 , 2 }, { 5 , 4 , 9 } }; middleProduct(mat, 3 ); } } // This code is contributed by shs |
Python3
# Python3 program to find product of # middle row and middle column in matrix MAX = 100 def middleProduct(mat, n): # loop for product of row and column row_prod = 1 col_prod = 1 for i in range (n) : row_prod * = mat[n / / 2 ][i] col_prod * = mat[i][n / / 2 ] # Print result print ( "Product of middle row = " , row_prod) print ( "Product of middle column = " , col_prod) # Driver code if __name__ = = "__main__" : mat = [[ 2 , 1 , 7 ], [ 3 , 7 , 2 ], [ 5 , 4 , 9 ]] middleProduct(mat, 3 ) # This code is contributed by ita_c |
C#
// C# program to find product of // middle row and middle column in matrix using System; class GFG { //static int MAX = 100; static void middleProduct( int [,]mat, int n) { // loop for product of row and column int row_prod = 1, col_prod = 1; for ( int i = 0; i < n; i++) { row_prod *= mat[n / 2,i]; col_prod *= mat[i,n / 2]; } // Print result Console.WriteLine( "Product of middle row = " + row_prod); Console.WriteLine( "Product of middle column = " + col_prod); } // Driver code public static void Main () { int [,]mat = { { 2, 1, 7 }, { 3, 7, 2 }, { 5, 4, 9 } }; middleProduct(mat, 3); } } // This code is contributed by shs |
PHP
<?php // PHP program to find product of // middle row and middle column in matrix $MAX = 100; function middleProduct( $mat , $n ) { // loop for product of row and column $row_prod = 1; $col_prod = 1; for ( $i = 0; $i < $n ; $i ++) { $row_prod *= $mat [ $n / 2][ $i ]; $col_prod *= $mat [ $i ][ $n / 2]; } // Print result echo "Product of middle row = " . $row_prod . "\n" ; echo "Product of middle column = " . $col_prod ; } // Driver code $mat = array ( array ( 2, 1, 7 ), array ( 3, 7, 2 ), array ( 5, 4, 9 )); middleProduct( $mat , 3); // This code is contributed // by Akanksha Rai ?> |
Javascript
<script> // Javascript program to find product of // middle row and middle column in matrix let MAX = 100; function middleProduct(mat,n) { // loop for product of row and column let row_prod = 1, col_prod = 1; for (let i = 0; i < n; i++) { row_prod *= mat[(Math.floor(n / 2))][i]; col_prod *= mat[i][(Math.floor(n / 2))]; } // Print result document.write( "Product of middle row = " + row_prod+ "<br>" ); document.write( "Product of middle column = " + col_prod+ "<br>" ); } // Driver code let mat = [[ 2, 1, 7 ], [ 3, 7, 2 ], [ 5, 4, 9 ]]; middleProduct(mat, 3); // This code is contributed by rag2127 </script> |
Product of middle row = 42 Product of middle column = 28
Time Complexity: O(n)
Auxiliary Space: O(1), as constant space is used
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!