Sunday, November 17, 2024
Google search engine
HomeData Modelling & AIProduct of middle row and column in an odd square matrix

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 

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>


Output

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

Time Complexity: O(n)
Auxiliary Space: O(1), as constant space is used

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments