Произведение средней строки и столбца в нечетной квадратной матрице

Опубликовано: 3 Декабря, 2021

Дана целочисленная квадратная матрица нечетных размеров (3 * 3, 5 * 5). Задача - найти произведение элементов средней строки и среднего столбца.

Примеры:

 Ввод: мат [] [] = 
{{2, 1, 7},
 {3, 7, 2},
 {5, 4, 9}}
Выход: Произведение среднего ряда = 42
        Произведение среднего столбца = 28
Пояснение: Произведение элементов среднего ряда (3 * 7 * 2)
Произведение элементов средней колонки (1 * 7 * 4)

Ввод: мат [] [] =
{{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}}
Выход: Произведение среднего ряда = 120
        Произведение средней колонны = 450
Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Подход: поскольку данная матрица имеет нечетные размеры, средняя строка и столбец всегда будут на n / 2-м месте. Итак, запустите цикл от i = 0 до N и создайте все элементы средней строки, то есть row_prod * = mat [n / 2] [i] . Точно так же произведение элементов среднего столбца будет col_prod * = mat [i] [n / 2] .

Ниже представлена реализация описанного выше подхода:

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;
}

Джава

// 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 . " " ;
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>
Выход:
 Произведение среднего ряда = 42
Произведение среднего столбца = 28

Сложность времени: O (n)