Squares of Matrix Diagonal Elements

You have given an integer matrix with odd dimensions. Find the square of the diagonals 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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 << " \n\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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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 (" \n\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)

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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 " \n\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.
?>

chevron_right



Output:

Diagonal one : 4 49 81  

Diagonal two : 49  49  25

Time Complexity O(n * n )

Method 2:
An efficient solution is also same as in 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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 << " \n\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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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 ("\n\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)

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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 " \n\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.
?>

chevron_right


Output:

Diagonal one : 4 49 81  

Diagonal two : 49 49 25 

Time Complexity O(n)



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : KRV, vt_m, manishshaw1



Article Tags :
Practice Tags :


2


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.