Open in App
Not now

# Sum of middle row and column in Matrix

• Difficulty Level : Basic
• Last Updated : 21 Mar, 2023

Given an integer matrix of odd dimensions (3 * 3, 5 * 5). then the task is to find the sum of the middle row & column elements.

Examples:

```Input :  2 5 7
3 7 2
5 6 9
Output : Sum of middle row = 12
Sum of middle column = 18

Input :  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 : Sum of middle row = 15
Sum of middle column = 18```

Implementation:

## CPP

 `// C++ program to find sum of ` `// middle row and column in matrix` `#include ` `using` `namespace` `std;` `const` `int` `MAX = 100;`   `void` `middlesum(``int` `mat[][MAX], ``int` `n)` `{`   `    ``int`  `row_sum = 0, col_sum = 0;` `    `  `    ``//loop for sum of row` `    ``for` `(``int` `i = 0; i < n; i++)` `        ``row_sum += mat[n / 2][i];` `    `  `    ``cout << ``"Sum of middle row = "` `                    ``<< row_sum<

## Java

 `// java  program to find sum of ` `// middle row and column in matrix`   `import` `java.io.*;`   `class` `GFG {` `    `    `static`  `int` `MAX = ``100``;`   ` ``static` `void` `middlesum(``int` `mat[][], ``int` `n)` `{`   `    ``int` `row_sum = ``0``, col_sum = ``0``;` `    `  `    ``// loop for sum of row` `    ``for` `(``int` `i = ``0``; i < n; i++)` `        ``row_sum += mat[n / ``2``][i];` `    `  `    ``System.out.println ( ``"Sum of middle row = "` `                  ``+ row_sum);` `    `  `    ``// loop for sum of column` `    ``for` `(``int` `i = ``0``; i < n; i++)` `        ``col_sum += mat[i][n / ``2``];` `    `  `    ``System.out.println ( ``"Sum of middle column = "` `                 ``+ col_sum);` `}`   `// Driver function` `    ``public` `static` `void` `main (String[] args) {` `        ``int` `mat[][] = {{``2``, ``5``, ``7``},` `                    ``{``3``, ``7``, ``2``}, ` `                    ``{``5``, ``6``, ``9``}};` `    `  `        ``middlesum(mat, ``3``);` `    `  `    ``}` `}`   `// This code is contributed by vt_m.`

## Python3

 `# Python program to find sum of ` `# middle row and column in matrix`   ` `  `def` `middlesum(mat,n):` ` `  `    ``row_sum ``=` `0` `    ``col_sum ``=` `0` `     `  `    ``# loop for sum of row` `    ``for` `i ``in` `range``(n):` `        ``row_sum ``+``=` `mat[n ``/``/` `2``][i]` `     `  `    ``print``(``"Sum of middle row = "``,` `                     ``row_sum)` `     `  `    ``# loop for sum of column` `    ``for` `i ``in` `range``(n):` `        ``col_sum ``+``=` `mat[i][n ``/``/` `2``]` `     `  `    ``print``(``"Sum of middle column = "``,` `                            ``col_sum)`   `# Driver code` `mat``=` `[[``2``, ``5``, ``7``],` `     ``[``3``, ``7``, ``2``], ` `     ``[``5``, ``6``, ``9``]]` `     `  `middlesum(mat, ``3``)`   `# This code is contributed` `# by Anant Agarwal.`

## C#

 `// C# program to find sum of ` `// middle row and column in matrix` `using` `System;`   `class` `GFG {` `    `    `    ``//static int MAX = 100;` `    `  `    ``static` `void` `middlesum(``int` `[,]mat, ``int` `n)` `    ``{` `    `  `        ``int` `row_sum = 0, col_sum = 0;` `        `  `        ``// loop for sum of row` `        ``for` `(``int` `i = 0; i < n; i++)` `            ``row_sum += mat[n / 2, i];` `        `  `        ``Console.WriteLine ( ``"Sum of middle row = "` `                    ``+ row_sum);` `        `  `        ``// loop for sum of column` `        ``for` `(``int` `i = 0; i < n; i++)` `            ``col_sum += mat[i, n / 2];` `        `  `        ``Console.WriteLine ( ``"Sum of middle column = "` `                            ``+ col_sum);` `    ``}`   `    ``// Driver function` `    ``public` `static` `void` `Main () {` `        ``int` `[,]mat = {{2, 5, 7},` `                    ``{3, 7, 2}, ` `                    ``{5, 6, 9}};` `    `  `        ``middlesum(mat, 3);` `    `  `    ``}` `}`   `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output

```Sum of middle row = 12
Sum of middle column = 18```

Time Complexity : O(n)
Auxiliary Space: O(1) using constant space to initialize row_sum and col_sum variables, since no extra space has been taken.

Using Stl:

Here we use the accumulate function to do it.

For JavaScript:

Here we use the reduce function to do it.

## C++

 `#include ` `#include` `using` `namespace` `std;`   `int` `main() {` `    ``vector>v{{2, 5, 7},` `                         ``{3, 7, 2},` `                         ``{5, 6, 9}};` `    ``int` `n=v.size();` `    ``cout<<``"The sum of all the element in middle row : "``<

## Java

 `import` `java.util.Arrays;`   `public` `class` `Main {` `    ``public` `static` `void` `main(String[] args) {` `        ``int``[][] v = {{``2``, ``5``, ``7``},` `                     ``{``3``, ``7``, ``2``},` `                     ``{``5``, ``6``, ``9``}};` `        ``int` `n = v.length;` `        ``System.out.println(``"The sum of all the element in middle row : "``);` `        ``System.out.println(Arrays.stream(v[n/``2``]).sum());` `        ``for``(``int` `i = ``0``; i < n; i++)` `            ``for``(``int` `j = i + ``1``; j < n; j++) {` `                ``int` `temp = v[i][j];` `                ``v[i][j] = v[j][i];` `                ``v[j][i] = temp;` `            ``}` `       ``System.out.println(``"The sum of all the element in middle column : "``);` `       ``System.out.println(Arrays.stream(v[n/``2``]).sum());` `    ``}` `}`

## Python3

 `# Python code to implement the above approach` `v ``=` `[[``2``, ``5``, ``7``],` `     ``[``3``, ``7``, ``2``],` `     ``[``5``, ``6``, ``9``]]` `n ``=` `len``(v)`   `print``(``"The sum of all the element in middle row : "``)` `print``(``sum``(v[n``/``/``2``]))`   `for` `i ``in` `range``(n):` `    ``for` `j ``in` `range``(i``+``1``,n):` `        ``v[i][j],v[j][i] ``=` `v[j][i],v[i][j]` `        `  `print``(``"The sum of all the element in middle column : "``)` `print``(``sum``(v[n``/``/``2``]))`

## Javascript

 `// JavaScript code to implement the above approach` `var` `v = [[2, 5, 7],` `         ``[3, 7, 2],` `         ``[5, 6, 9]];` `var` `n = v.length;`   `console.log(``"The sum of all the element in middle row : "``);` `console.log(v[Math.floor(n/2)].reduce((a,b)=>a+b,0));`   `for``(``var` `i=0;ia+b,0));`   `// contributed by rishabh`

Output

```The sum of all the element in middle row :
12
The sum of all the element in middle column :
18```

The accumulated value of f applications. Complexity: O(nÃ—k), where n is the distance from first to last , O(k) is complexity of f function.

Time Complexity: O(n*k).
Auxiliary Space : O(k)

My Personal Notes arrow_drop_up
Related Articles