# Product of middle row and column in an odd square matrix

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
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: As the given matrix is of odd dimensions so the middle row and column will be at n/2 th index always. So, Run a loop from i = 0 to N and product all the elements of middle row i.e. row_prod *= mat[n / 2][i]. Similarly, product of elements of 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 ` `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; ` `} `

## 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

 ` `

Output:

```Product of middle row = 42
Product of middle column = 28
```

Time Complexity: O(n)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.