You have given an integer matrix with odd dimensions. Find the square of the diagonal elements on both sides.
Examples:
Input : 1 2 3 4 5 6 7 8 9 Output : Diagonal one: 1 25 81 Diagonal two: 9 25 49 Input : 2 5 7 3 7 2 5 6 9 Output : Diagonal one : 4 49 81 Diagonal two : 49 49 25
Method 1: Firstly we find the diagonal element of the matrix and then we print the square of that element.
C++
// Simple CPP program to print squares of // diagonal elements. #include <iostream> using namespace std;
#define MAX 100 // function of diagonal square void diagonalsquare( int mat[][MAX], int row,
int column)
{ // This loop is for finding square of first
// diagonal elements
cout << "Diagonal one : " ;
for ( int i = 0; i < row; i++)
{
for ( int j = 0; j < column; j++)
// if this condition will become true
// then we will get diagonal element
if (i == j)
// printing square of diagonal element
cout << mat[i][j] * mat[i][j] << " " ;
}
// This loop is for finding square of second
// side of diagonal elements
cout << " \nDiagonal two : " ;
for ( int i = 0; i < row; i++)
{
for ( int j = 0; j < column; j++)
// if this condition will become true
// then we will get second side diagonal
// element
if (i + j == column - 1)
// printing square of diagonal element
cout << mat[i][j] * mat[i][j] << " " ;
}
} // Driver code int main()
{ int mat[][MAX] = { { 2, 5, 7 },
{ 3, 7, 2 },
{ 5, 6, 9 } };
diagonalsquare(mat, 3, 3);
return 0;
} |
Java
// Simple JAva program to print squares of // diagonal elements. import java.io.*;
class GFG
{ static int MAX = 100 ;
// function of diagonal square
static void diagonalsquare( int mat[][], int row,
int column)
{
// This loop is for finding square of first
// diagonal elements
System.out.print( "Diagonal one : " );
for ( int i = 0 ; i < row; i++)
{
for ( int j = 0 ; j < column; j++)
// if this condition will become true
// then we will get diagonal element
if (i == j)
// printing square of diagonal element
System.out.print ( mat[i][j] * mat[i][j] + " " );
}
System.out.println();
// This loop is for finding square of second
// side of diagonal elements
System.out.print( "Diagonal two : " );
for ( int i = 0 ; i < row; i++)
{
for ( int j = 0 ; j < column; j++)
// if this condition will become true
// then we will get second side diagonal
// element
if (i + j == column - 1 )
// printing square of diagonal element
System.out.print(mat[i][j] * mat[i][j] + " " );
}
}
// Driver code
public static void main (String[] args)
{
int mat[][] = { { 2 , 5 , 7 },
{ 3 , 7 , 2 },
{ 5 , 6 , 9 } };
diagonalsquare(mat, 3 , 3 );
}
} // This code is contributed by vt_m. |
Python3
# Simple Python program # to print squares # of diagonal elements. # function of diagonal square def diagonalsquare(mat, row, column) :
# This loop is for finding square
# of first diagonal elements
print ( "Diagonal one : " , end = "")
for i in range ( 0 , row) :
for j in range ( 0 , column) :
# if this condition will
# become true then we will
# get diagonal element
if (i = = j) :
# printing square of
# diagonal element
print ( "{} " . format (mat[i][j] *
mat[i][j]), end = "")
# This loop is for finding
# square of second side
# of diagonal elements
print ( " \nDiagonal two : " , end = "")
for i in range ( 0 , row) :
for j in range ( 0 , column) :
# if this condition will become
# true then we will get second
# side diagonal element
if (i + j = = column - 1 ) :
# printing square of diagonal
# element
print ( "{} " . format (mat[i][j] *
mat[i][j]), end = "")
# Driver code mat = [[ 2 , 5 , 7 ],
[ 3 , 7 , 2 ],
[ 5 , 6 , 9 ]]
diagonalsquare(mat, 3 , 3 )
# This code is contributed by # Manish Shaw(manishshaw1) |
C#
// Simple C# program to print squares of // diagonal elements. using System;
class GFG
{ //static int MAX =100;
// function of diagonal square
static void diagonalsquare( int [,]mat, int row,
int column)
{
// This loop is for finding
// square of first
// diagonal elements
Console.Write( "Diagonal one : " );
for ( int i = 0; i < row; i++)
{
for ( int j = 0; j < column; j++)
// if this condition will become true
// then we will get diagonal element
if (i == j)
// printing square of diagonal element
Console.Write ( mat[i,j] * mat[i,j] + " " );
}
Console.WriteLine();
// This loop is for finding
// square of second side of
// diagonal elements
Console.Write( "Diagonal two : " );
for ( int i = 0; i < row; i++)
{
for ( int j = 0; j < column; j++)
// if this condition will become true
// then we will get second side diagonal
// element
if (i + j == column - 1)
// printing square of diagonal element
Console.Write(mat[i,j] * mat[i,j] + " " );
}
}
// Driver code
public static void Main ()
{
int [,]mat = {{ 2, 5, 7 },
{ 3, 7, 2 },
{ 5, 6, 9 }};
diagonalsquare(mat, 3, 3);
}
} // This code is contributed by anuj_67. |
PHP
<?php // Simple PHP program to print squares // of diagonal elements. //$MAX = 100; // function of diagonal square function diagonalsquare( $mat , $row ,
$column )
{ // This loop is for finding square
// of first diagonal elements
echo "Diagonal one : " ;
for ( $i = 0; $i < $row ; $i ++)
{
for ( $j = 0; $j < $column ; $j ++)
// if this condition will become true
// then we will get diagonal element
if ( $i == $j )
// printing square of diagonal
// element
echo $mat [ $i ][ $j ] * $mat [ $i ][ $j ]
, " " ;
}
// This loop is for finding square of second
// side of diagonal elements
echo " \nDiagonal two : " ;
for ( $i = 0; $i < $row ; $i ++)
{
for ( $j = 0; $j < $column ; $j ++)
// if this condition will become
// true then we will get second
// side diagonal element
if ( $i + $j == $column - 1)
// printing square of diagonal
// element
echo $mat [ $i ][ $j ] * $mat [ $i ][ $j ],
" " ;
}
} // Driver code $mat = array ( array ( 2, 5, 7 ),
array ( 3, 7, 2 ),
array ( 5, 6, 9 ) );
diagonalsquare( $mat , 3, 3);
// This code is contributed by anuj_67. ?> |
Javascript
// Simple JS program to print squares of // diagonal elements. let MAX = 100 // function of diagonal square function diagonalsquare(mat, row, column)
{ // This loop is for finding square of first
// diagonal elements
process.stdout.write( "Diagonal one : " );
for ( var i = 0; i < row; i++)
{
for ( var j = 0; j < column; j++)
// if this condition will become true
// then we will get diagonal element
if (i == j)
// printing square of diagonal element
process.stdout.write(mat[i][j] * mat[i][j] + " " );
}
// This loop is for finding square of second
// side of diagonal elements
process.stdout.write( " \nDiagonal two : " );
for ( var i = 0; i < row; i++)
{
for ( var j = 0; j < column; j++)
// if this condition will become true
// then we will get second side diagonal
// element
if (i + j == column - 1)
// printing square of diagonal element
process.stdout.write(mat[i][j] * mat[i][j] + " " );
}
} // Driver code let mat = [[ 2, 5, 7 ], [ 3, 7, 2 ], [ 5, 6, 9 ] ]; diagonalsquare(mat, 3, 3); // This code is contributed by phasing17 |
Output
Diagonal one : 4 49 81 Diagonal two : 49 49 25
Time Complexity : O(n*n)
Auxiliary Space: O(1)
Method 2:
An efficient solution is also the same as in the naive approach but in this, we are taking only one loop to find the diagonal element and then we print the square of that element.
C++
// Efficient CPP program to print squares of // diagonal elements. #include <iostream> using namespace std;
#define MAX 100 // function of diagonal square void diagonalsquare( int mat[][MAX], int row,
int column)
{ // This loop is for finding of square of
// the first side of diagonal elements
cout << " \nDiagonal one : " ;
for ( int i = 0; i < row; i++)
{
// printing direct square of diagonal
// element there is no need to check
// condition
cout << mat[i][i] * mat[i][i] << " " ;
}
// This loop is for finding square of the
// second side of diagonal elements
cout << " \nDiagonal two : " ;
for ( int i = 0; i < row; i++)
{
// printing direct square of diagonal
// element in the second side
cout << mat[i][row - i - 1] * mat[i][row - i - 1]
<< " " ;
}
} // Driver code int main()
{ int mat[][MAX] = { { 2, 5, 7 },
{ 3, 7, 2 },
{ 5, 6, 9 } };
diagonalsquare(mat, 3, 3);
return 0;
} |
Java
// Efficient JAVA program to print squares of // diagonal elements. import java.io.*;
class GFG
{ static int MAX = 100 ;
// function of diagonal square
static void diagonalsquare( int mat[][], int row, int column)
{
// This loop is for finding of square of
// the first side of diagonal elements
System.out.print ( " Diagonal one : " );
for ( int i = 0 ; i < row; i++)
{
// printing direct square of diagonal
// element there is no need to check
// condition
System.out.print( mat[i][i] * mat[i][i] + " " );
}
System.out.println();
// This loop is for finding square of the
// second side of diagonal elements
System.out.print( " Diagonal two : " );
for ( int i = 0 ; i < row; i++)
{
// printing direct square of diagonal
// element in the second side
System.out.print( mat[i][row - i - 1 ] *
mat[i][row - i - 1 ] + " " );
}
}
// Driver code
public static void main (String[] args)
{
int mat[][] = { { 2 , 5 , 7 },
{ 3 , 7 , 2 },
{ 5 , 6 , 9 } };
diagonalsquare(mat, 3 , 3 );
}
} // This code is contributed by vt_m. |
Python3
# Efficient Python program # to print squares of # diagonal elements. # function of diagonal square def diagonalsquare(mat, row,
column) :
# This loop is for finding
# of square of the first
# side of diagonal elements
print ( "Diagonal one : " ,
end = "")
for i in range ( 0 , row) :
# printing direct square
# of diagonal element
# there is no need to
# check condition
print (mat[i][i] *
mat[i][i], end = " " )
# This loop is for finding
# square of the second side
# of diagonal elements
print ( "\nDiagonal two : " ,
end = "")
for i in range ( 0 , row) :
# printing direct square
# of diagonal element in
# the second side
print (mat[i][row - i - 1 ] *
mat[i][row - i - 1 ] ,
end = " " )
# Driver code mat = [[ 2 , 5 , 7 ],
[ 3 , 7 , 2 ],
[ 5 , 6 , 9 ]]
diagonalsquare(mat, 3 , 3 )
# This code is contributed by # Manish Shaw(manishshaw1) |
C#
// Efficient C# program to print // squares of diagonal elements. using System;
class GFG {
static int MAX =100;
// function of diagonal square
static void diagonalsquare( int [,] mat,
int row,
int column)
{
// This loop is for finding of
// square of the first side of
// diagonal elements
Console.Write ( "Diagonal one : " );
for ( int i = 0; i < row; i++)
{
// printing direct square of diagonal
// element there is no need to check
// condition
Console.Write(mat[i, i] *
mat[i, i] + " " );
}
Console.WriteLine();
// This loop is for finding square
// of the second side of diagonal
// elements
Console.Write( "Diagonal two : " );
for ( int i = 0; i < row; i++)
{
// printing direct square of diagonal
// element in the second side
Console.Write(mat[i, row - i - 1] *
mat[i, row - i - 1] + " " );
}
}
// Driver code
public static void Main ()
{
int [,] mat = new int [,]{{ 2, 5, 7 },
{ 3, 7, 2 },
{ 5, 6, 9 }};
diagonalsquare(mat, 3, 3);
}
} // This code is contributed by KRV. |
PHP
<?php // Efficient PHP program to print squares of // diagonal elements. $MAX = 100;
// function of diagonal square function diagonalsquare( $mat , $row ,
$column )
{ // This loop is for finding of square of
// the first side of diagonal elements
echo " \nDiagonal one : " ;
for ( $i = 0; $i < $row ; $i ++)
{
// printing direct square of diagonal
// element there is no need to check
// condition
echo $mat [ $i ][ $i ] * $mat [ $i ][ $i ] , " " ;
}
// This loop is for finding square of the
// second side of diagonal elements
echo " \nDiagonal two : " ;
for ( $i = 0; $i < $row ; $i ++)
{
// printing direct square of diagonal
// element in the second side
echo $mat [ $i ][ $row - $i - 1] *
$mat [ $i ][ $row - $i - 1]
, " " ;
}
} // Driver code
$mat = array ( array (2, 5, 7 ),
array (3, 7, 2 ),
array (5, 6, 9 ));
diagonalsquare( $mat , 3, 3);
// This code is contributed by anuj_67. ?> |
Javascript
// Efficient JS program to print squares of // diagonal elements. let MAX = 100 // function of diagonal square
function diagonalsquare(mat, row, column)
{ // This loop is for finding of square of
// the first side of diagonal elements
console.log( " Diagonal one : " );
for ( var i = 0; i < row; i++) {
// printing direct square of diagonal
// element there is no need to check
// condition
process.stdout.write(mat[i][i] * mat[i][i] + " " );
}
// This loop is for finding square of the
// second side of diagonal elements
process.stdout.write( " \nDiagonal two : " );
for ( var i = 0; i < row; i++) {
// printing direct square of diagonal
// element in the second side
process.stdout.write(mat[i][row - i - 1]
* mat[i][row - i - 1]
+ " " );
}
} // Driver code let mat = [ [ 2, 5, 7 ], [ 3, 7, 2 ], [ 5, 6, 9 ] ]; diagonalsquare(mat, 3, 3); // This code is contributed by phasing17. |
Output
Diagonal one : 4 49 81 Diagonal two : 49 49 25
Time Complexity: O(n)
Auxiliary Space: O(1)
Recommended Articles