Printing Boundary Elements of a Matrix.
Examples:
Input : 1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
Output : 1 2 3 4
5 8
1 4
5 6 7 8
The idea is really simple. We traverse given matrix. For every element being traversed, we print it if it is a corner element. If it is not a corner element, then we print space character.
C++
#include <bits/stdc++.h>
using namespace std;
const int MAX = 100;
void printBoundary( int a[][MAX], int m, int n)
{
for ( int i = 0; i < m; i++) {
for ( int j = 0; j < n; j++) {
if (i == 0 || j == 0 || i == n - 1 || j == n - 1)
cout << a[i][j] << " " ;
else
cout << " "
<< " " ;
}
cout << "
" ;
}
}
int main()
{
int a[4][MAX] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
printBoundary(a, 4, 4);
return 0;
}
|
Java
class GFG {
public static void printBoundary( int a[][], int m,
int n)
{
for ( int i = 0 ; i < m; i++) {
for ( int j = 0 ; j < n; j++) {
if (i == 0 )
System.out.print(a[i][j] + " " );
else if (i == m - 1 )
System.out.print(a[i][j] + " " );
else if (j == 0 )
System.out.print(a[i][j] + " " );
else if (j == n - 1 )
System.out.print(a[i][j] + " " );
else
System.out.print( " " );
}
System.out.println( "" );
}
}
public static void main(String[] args)
{
int a[][] = { { 1 , 2 , 3 , 4 }, { 5 , 6 , 7 , 8 }, { 1 , 2 , 3 , 4 }, { 5 , 6 , 7 , 8 } };
printBoundary(a, 4 , 4 );
}
}
|
Python
MAX = 100
def printBoundary(a, m, n):
for i in range (m):
for j in range (n):
if (i = = 0 ):
print a[i][j],
elif (i = = m - 1 ):
print a[i][j],
elif (j = = 0 ):
print a[i][j],
elif (j = = n - 1 ):
print a[i][j],
else :
print " " ,
print
a = [ [ 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 ],
[ 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 ] ]
printBoundary(a, 4 , 4 )
|
C#
using System;
class GFG {
public static void printBoundary( int [, ] a,
int m,
int n)
{
for ( int i = 0; i < m; i++) {
for ( int j = 0; j < n; j++) {
if (i == 0)
Console.Write(a[i, j] + " " );
else if (i == m - 1)
Console.Write(a[i, j] + " " );
else if (j == 0)
Console.Write(a[i, j] + " " );
else if (j == n - 1)
Console.Write(a[i, j] + " " );
else
Console.Write( " " );
}
Console.WriteLine( " " );
}
}
static public void Main()
{
int [, ] a = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 } };
printBoundary(a, 4, 4);
}
}
|
PHP
<?php
$MAX = 100;
function printBoundary( $a , $m , $n )
{
global $MAX ;
for ( $i = 0; $i < $m ; $i ++)
{
for ( $j = 0; $j < $n ; $j ++)
{
if ( $i == 0)
echo $a [ $i ][ $j ], " " ;
else if ( $i == $m - 1)
echo $a [ $i ][ $j ], " " ;
else if ( $j == 0)
echo $a [ $i ][ $j ], " " ;
else if ( $j == $n - 1)
echo $a [ $i ][ $j ], " " ;
else
echo " " , " " ;
}
echo "
" ;
}
}
$a = array ( array ( 1, 2, 3, 4 ),
array ( 5, 6, 7, 8 ),
array ( 1, 2, 3, 4 ),
array ( 5, 6, 7, 8 ));
printBoundary( $a , 4, 4);
?>
|
Output:
1 2 3 4
5 8
1 4
5 6 7 8
Finding sum of boundary elements
Examples:
Input : 1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
Output : 54
C++
#include <bits/stdc++.h>
using namespace std;
const int MAX = 100;
int getBoundarySum( int a[][MAX], int m, int n)
{
long long int sum = 0;
for ( int i = 0; i < m; i++) {
for ( int j = 0; j < n; j++) {
if (i == 0)
sum += a[i][j];
else if (i == m - 1)
sum += a[i][j];
else if (j == 0)
sum += a[i][j];
else if (j == n - 1)
sum += a[i][j];
}
}
return sum;
}
int main()
{
int a[][MAX] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
long long int sum = getBoundarySum(a, 4, 4);
cout << "Sum of boundary elements is " << sum;
return 0;
}
|
Java
class GFG {
public static long getBoundarySum( int a[][], int m,
int n)
{
long sum = 0 ;
for ( int i = 0 ; i < m; i++) {
for ( int j = 0 ; j < n; j++) {
if (i == 0 )
sum += a[i][j];
else if (i == m - 1 )
sum += a[i][j];
else if (j == 0 )
sum += a[i][j];
else if (j == n - 1 )
sum += a[i][j];
}
}
return sum;
}
public static void main(String[] args)
{
int a[][] = { { 1 , 2 , 3 , 4 }, { 5 , 6 , 7 , 8 }, { 1 , 2 , 3 , 4 }, { 5 , 6 , 7 , 8 } };
long sum = getBoundarySum(a, 4 , 4 );
System.out.println( "Sum of boundary elements"
+ " is " + sum);
}
}
|
Python
MAX = 100
def printBoundary(a, m, n):
sum = 0
for i in range (m):
for j in range (n):
if (i = = 0 ):
sum + = a[i][j]
elif (i = = m - 1 ):
sum + = a[i][j]
elif (j = = 0 ):
sum + = a[i][j]
elif (j = = n - 1 ):
sum + = a[i][j]
return sum
a = [ [ 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 ],
[ 1 , 2 , 3 , 4 ], [ 5 , 6 , 7 , 8 ] ]
sum = printBoundary(a, 4 , 4 )
print "Sum of boundary elements is" , sum
|
C#
using System;
class GFG {
public static long getBoundarySum( int [, ] a,
int m, int n)
{
long sum = 0;
for ( int i = 0; i < m; i++) {
for ( int j = 0; j < n; j++) {
if (i == 0)
sum += a[i, j];
else if (i == m - 1)
sum += a[i, j];
else if (j == 0)
sum += a[i, j];
else if (j == n - 1)
sum += a[i, j];
}
}
return sum;
}
static public void Main()
{
int [, ] a = { { 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 } };
long sum = getBoundarySum(a, 4, 4);
Console.WriteLine( "Sum of boundary"
+ " elements is " + sum);
}
}
|
PHP
<?php
function getBoundarySum( $a ,
$m , $n )
{
$sum = 0;
for ( $i = 0; $i < $m ; $i ++)
{
for ( $j = 0; $j < $n ; $j ++)
{
if ( $i == 0)
$sum += $a [ $i ][ $j ];
else if ( $i == $m - 1)
$sum += $a [ $i ][ $j ];
else if ( $j == 0)
$sum += $a [ $i ][ $j ];
else if ( $j == $n - 1)
$sum += $a [ $i ][ $j ];
}
}
return $sum ;
}
$a = array ( array (1, 2, 3, 4),
array (5, 6, 7, 8),
array (1, 2, 3, 4),
array (5, 6, 7, 8));
$sum = getBoundarySum( $a , 4, 4);
echo "Sum of boundary elements is " , $sum ;
?>
|
Output:
Sum of boundary elements is 54
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
leave a comment
1 Comments