Squares of Matrix Diagonal Elements

20 Jun, 2022
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++
Java
Python3
C#
PHP
// Simple CPP program to print squares of// diagonal elements.#include <iostream>using namespace std; #define MAX 100 // function of diagonal squarevoid 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 codeint main(){    int mat[][MAX] = { { 2, 5, 7 },                       { 3, 7, 2 },                       { 5, 6, 9 } };    diagonalsquare(mat, 3, 3);    return 0;}
// 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.
# Simple Python program# to print squares# of diagonal elements. # function of diagonal squaredef 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 codemat = [[ 2, 5, 7 ],        [ 3, 7, 2 ],        [ 5, 6, 9 ]]diagonalsquare(mat, 3, 3) # This code is contributed by# Manish Shaw(manishshaw1)
// 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// Simple PHP program to print squares// of diagonal elements. //$MAX = 100; // function of diagonal squarefunction 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.?>
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++
Java
Python3
C#
PHP
// Efficient CPP program to print squares of// diagonal elements.#include <iostream>using namespace std; #define MAX 100 // function of diagonal squarevoid 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 codeint main(){    int mat[][MAX] = { { 2, 5, 7 },                    { 3, 7, 2 },                    { 5, 6, 9 } };    diagonalsquare(mat, 3, 3);    return 0;}
// 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.
# Efficient Python program# to print squares of# diagonal elements. # function of diagonal squaredef 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 codemat = [[2, 5, 7 ],       [3, 7, 2 ],       [5, 6, 9 ]]diagonalsquare(mat, 3, 3)     # This code is contributed by# Manish Shaw(manishshaw1)
// 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// Efficient PHP program to print squares of// diagonal elements. $MAX = 100; // function of diagonal squarefunction 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.?>
Output:
Diagonal one : 4 49 81  

Diagonal two : 49 49 25 
Time Complexity O(n)Space Complexity O(n^2) for creating 2-Dimensional array
KRV
vt_m
manishshaw1
technophpfij
Matrix
Matrix
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Matrix Chain Multiplication | DP-8
Program to find largest element in an array
Rat in a Maze | Backtracking-2
Sudoku | Backtracking-7
The Celebrity Problem
Find the number of islands | Set 1 (Using DFS)
Rotate a matrix by 90 degree in clockwise direction without using any extra space
Count all possible paths from top left to bottom right of a mXn matrix
Unique paths in a Grid with Obstacles
Printing all solutions in N-Queen Problem