Related Articles
Print all the sub diagonal elements of the given square matrix
• Last Updated : 21 Jun, 2019

Given a square matrix mat[][] of size n * n. The task is to print all the elements which lie on the sub-diagonal of the given matrix.

Examples:

Input: mat[][] = {
{1, 2, 3},
{3, 3, 4, },
{2, 4, 6}}
Output: 3 4

Input: mat[][] = {
{1, 2, 3, 4},
{3, 3, 4, 4},
{2, 4, 6, 3},
{1, 1, 1, 3}}
Output: 3 4 1

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: The sub-diagonal of a square matrix is the set of elements that lie directly below the elements comprising the main diagonal. As for main diagonal elements, their indexes are like (i = j), for sub-diagonal elements their indexes are as i = j + 1 (i denotes row and j denotes column).

Hence elements arr, arr, arr, arr, …. are the elements of sub-diagonal.

Either traverse all elements of matrix and print only those where i = j + 1 which requires O(n2) time complexity or print traverse only row from 1 to rowCount – 1 and print elements as arr[row][row – 1].

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;``#define R 4``#define C 4`` ` `// Function to print the sub diagonal``// elements of the given matrix``void` `printSubDiagonal(``int` `arr[R][C])``{``    ``for` `(``int` `i = 1; i < R; i++) {``        ``cout << arr[i][i - 1] << ``" "``;``    ``}``}`` ` `// Driver code``int` `main()``{``    ``int` `arr[R][C] = { { 1, 2, 3, 4 },``                      ``{ 5, 6, 7, 8 },``                      ``{ 9, 10, 11, 12 },``                      ``{ 13, 14, 15, 16 } };`` ` `    ``printSubDiagonal(arr);`` ` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``import` `java.io.*;`` ` `class` `GFG``{``     ` `static` `int` `R = ``4``;``static` `int` `C = ``4``;`` ` `// Function to print the sub diagonal``// elements of the given matrix``static` `void` `printSubDiagonal(``int` `arr[][])``{``    ``for` `(``int` `i = ``1``; i < R; i++)``    ``{``            ``System.out.print(arr[i][i - ``1``] + ``" "``);``    ``}``}`` ` `// Driver code``public` `static` `void` `main (String[] args)``{`` ` `    ``int` `arr[][] = { { ``1``, ``2``, ``3``, ``4` `},``                    ``{ ``5``, ``6``, ``7``, ``8` `},``                    ``{ ``9``, ``10``, ``11``, ``12` `},``                    ``{ ``13``, ``14``, ``15``, ``16` `} };`` ` `    ``printSubDiagonal(arr);`` ` `}``}`` ` `// This code is contributed by ajit.`

## Python3

 `# Python3 implementation of the approach``R ``=` `4``C ``=` `4`` ` `# Function to print the sub diagonal``# elements of the given matrix``def` `printSubDiagonal(arr):`` ` `    ``for` `i ``in` `range``(``1``, R):``        ``print``(arr[i][i ``-` `1``], end ``=` `" "``)`` ` `# Driver code``arr ``=` `[[ ``1``, ``2``, ``3``, ``4` `],``       ``[ ``5``, ``6``, ``7``, ``8` `],``       ``[ ``9``, ``10``, ``11``, ``12` `],``       ``[ ``13``, ``14``, ``15``, ``16` `]]`` ` `printSubDiagonal(arr);`` ` `# This code is contributed``# by Mohit Kumar`

## C#

 `// C# implementation of the approach``using` `System;``class` `GFG``{``    ``static` `int` `R = 4;``    ``static` `int` `C = 4;``     ` `    ``// Function to print the sub diagonal``    ``// elements of the given matrix``    ``static` `void` `printSubDiagonal(``int``[,] arr)``    ``{``        ``for` `(``int` `i = 1; i < R; i++)``        ``{``                ``Console.Write(arr[i, i - 1] + ``" "``);``        ``}``    ``}``     ` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``int` `[,]arr = {{ 1, 2, 3, 4 },``                      ``{ 5, 6, 7, 8 },``                      ``{ 9, 10, 11, 12 },``                      ``{ 13, 14, 15, 16 }};``     ` `        ``printSubDiagonal(arr);``    ``}``}`` ` `// This code is contributed by CodeMech.`
Output:
```5 10 15
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up