Program to Print Matrix in Z form
Given a square matrix of order n*n, we need to print elements of the matrix in Z form
Input: [[4, 5, 6, 8], [1, 2, 3, 1], [7, 8, 9, 4], [1, 8, 7, 5]] Output: 4 5 6 8 3 8 1 8 7 5 Input: [[4, 5, 6, 8, 5], [1, 2, 3, 1, 4], [7, 8, 9, 4, 7], [1, 8, 7, 5, 2], [7, 9, 5, 6, 9], [9, 4, 5, 6, 6]] Output: 4 5 6 8 5 1 9 8 7 9 4 5 6 6
We need to traverse the first row of the matrix then the second diagonal and then the last row.
Implementation:
C++
// CPP program to print a square matrix in Z form #include <bits/stdc++.h> using namespace std; const int MAX = 100; // Function to print a square matrix in Z form void printZform( int mat[][MAX], int n) { // print first row for ( int i = 0; i < n; i++) cout << mat[0][i] << " " ; // Print second diagonal int i = 1, j = n - 2; while (i < n && j >= 0) { cout << mat[i][j] << " " ; i++; j--; } // Print last row for ( int i = 1; i < n; i++) cout << mat[n - 1][i] << " " ; } // Driver function int main() { int mat[][MAX] = { { 4, 5, 6, 8 }, { 1, 2, 3, 1 }, { 7, 8, 9, 4 }, { 1, 8, 7, 5 } }; printZform(mat, 4); return 0; } |
Java
// Java program to print a // square matrix in Z form import java.io.*; import java.lang.*; class GFG { public static void diag( int arr[][], int n) { int i = 0 , j, k; // print first row for (j = 0 ; j < n - 1 ; j++) { System.out.print(arr[i][j] + " " ); } // Print diagonal k = 1 ; for (i = 0 ; i < n - 1 ; i++) { for (j = 0 ; j < n; j++) { if (j == n - k) { System.out.print(arr[i][j] + " " ); break ; } } k++; } // Print last row i = n - 1 ; for (j = 0 ; j < n; j++) System.out.print(arr[i][j] + " " ); System.out.print( "\n" ); } public static void main(String[] args) { int a[][] = { { 4 , 5 , 6 , 8 }, { 1 , 2 , 3 , 1 }, { 7 , 8 , 9 , 4 }, { 1 , 8 , 7 , 5 } }; diag(a, 4 ); } } // Code contributed by Mohit Gupta_OMG <(0_o)> |
Python3
# Python Program to print a Square # Matrix in Z form. # Function to print Matrix in Z form def Z_print(Test_list): Result = [] # Empty list to Store Final Result # To find the difference b/w whole matrix and first elements diff = len (Test_list) - len (Test_list[ 0 ]) # Loop to find elements for Z form and to print it. for i in range ( len (Test_list)): # If the elements if First or Last then print it as it is... if i = = 0 or i = = len (Test_list) - 1 : Result.append(Test_list[i]) Result = Result[ 0 ] print ( * Result) Result = [] else : Result.append(Test_list[i][ len (Test_list) - i - 1 - diff]) a = Result[ 0 ] # Give require spaces for printing elements... print ( " " * ( len (Test_list) - i - 1 - diff) + str (a)) Result = [] # Empty list again for storing next pattern return Result # Driver Function if __name__ = = "__main__" : Test_list1 = [[ 4 , 5 , 6 , 8 ], [ 1 , 2 , 3 , 1 ], [ 7 , 8 , 9 , 4 ], [ 1 , 8 , 7 , 5 ]] Z_print(Test_list1) # Passing Matrix to Z_print function |
C#
// C# program to print a square // matrix in Z form using System; class GFG { public static void printZform( int [, ] mat, int n) { int i, j; // print first row for (i = 0; i < n; i++) { Console.Write(mat[0, i] + " " ); } // Print diagonal i = 1; j = n - 2; while (i < n && j >= 0) // print diagonal { Console.Write(mat[i, j] + " " ); i++; j--; } // Print last row for (i = 1; i < n; i++) Console.Write(mat[n - 1, i] + " " ); } // Driver code public static void Main() { int [, ] mat = { { 4, 5, 6, 8 }, { 1, 2, 3, 1 }, { 7, 8, 9, 4 }, { 1, 8, 7, 5 } }; printZform(mat, 4); } } // This code is contributed by vt_m. |
PHP
<?php // PHP program to print a // square matrix in Z form $MAX = 100; // Function to print a // square matrix in Z form function printZform( $mat , $n ) { // print first row for ( $i = 0; $i < $n ; $i ++) echo $mat [0][ $i ] , " " ; // Print diagonal $i = 1; $j = $n - 2; // print diagonal while ( $i < $n and $j >= 0) { echo $mat [ $i ][ $j ] , " " ; $i ++; $j --; } // Print last row for ( $i = 1; $i < $n ; $i ++) echo $mat [ $n - 1][ $i ] , " " ; } // Driver Code $mat = array ( array (4, 5, 6, 8), array (1, 2, 3, 1), array (7, 8, 9, 4), array (1, 8, 7, 5)); printZform( $mat , 4); // This code is contributed by anuj_67. ?> |
Javascript
<script> // JavaScript program to print a square // matrix in Z form function printZform(mat, n) { var i, j; // print first row for (i = 0; i < n; i++) { document.write(mat[0][i] + " " ); } // Print diagonal i = 1; j = n - 2; while (i < n && j >= 0) // print diagonal { document.write(mat[i][j] + " " ); i++; j--; } // Print last row for (i = 1; i < n; i++) document.write(mat[n - 1][i] + " " ); } // Driver code var mat = [ [ 4, 5, 6, 8 ], [ 1, 2, 3, 1 ], [ 7, 8, 9, 4 ], [ 1, 8, 7, 5 ] ]; printZform(mat, 4); </script> |
Output
4 5 6 8 3 8 1 8 7 5
Time Complexity: O(n)
Auxiliary Space: O(1)
Alternatively, we can print first row and second diagonal except last element and then last row.
C++14
// CPP program to print a square matrix in Z form #include <bits/stdc++.h> using namespace std; const int MAX = 100; // Function to print a square matrix in Z form void printZform( int mat[][MAX], int n) { int i; // print first row except last element for (i = 0; i < n-1; i++) cout << mat[0][i] << " " ; // Print second diagonal except last element for (i=0;i<n-1;i++) cout<<mat[i][n-i-1]<< " " ; // Print last row for (i = 0; i < n; i++) cout << mat[n - 1][i] << " " ; } // Driver function int main() { int mat[][MAX] = { { 4, 5, 6, 8 }, { 1, 2, 3, 1 }, { 7, 8, 9, 4 }, { 1, 8, 7, 5 } }; printZform(mat, 4); return 0; } |
Java
// Java program to print a square matrix in Z form public final class GFG { public static int MAX = 100 ; // Function to print a square matrix in Z form public static void printZform( int [][] mat, int n) { int i; // print first row except last element for (i = 0 ; i < n - 1 ; i++) { System.out.print(mat[ 0 ][i]); System.out.print( " " ); } // Print second diagonal except last element for (i = 0 ; i < n - 1 ; i++) { System.out.print(mat[i][n - i - 1 ]); System.out.print( " " ); } // Print last row for (i = 0 ; i < n; i++) { System.out.print(mat[n - 1 ][i]); System.out.print( " " ); } } // Driver function public static void main(String[] args) { int [][] mat = { { 4 , 5 , 6 , 8 }, { 1 , 2 , 3 , 1 }, { 7 , 8 , 9 , 4 }, { 1 , 8 , 7 , 5 } }; printZform(mat, 4 ); } } // This code is contributed by Aarti_Rathi |
Python3
# Python program to print a square matrix in Z form # Function to print a square matrix in Z form def printZform(mat, n): # print first row except last element for i in range (n - 1 ): print (mat[ 0 ][i], end = " " ) # Print second diagonal except last element for i in range (n - 1 ): print (mat[i][n - i - 1 ], end = " " ) # Print last row for i in range (n): print (mat[n - 1 ][i], end = " " ) # Driver function mat = [ [ 4 , 5 , 6 , 8 ], [ 1 , 2 , 3 , 1 ], [ 7 , 8 , 9 , 4 ], [ 1 , 8 , 7 , 5 ] ]; printZform(mat, 4 ) # This code is contributed by Samim Hossain Mondal. |
C#
// C# program to print a square matrix in Z form using System; public static class GFG { public static int MAX = 100; // Function to print a square matrix in Z form public static void printZform( int [, ] mat, int n) { int i; // print first row except last element for (i = 0; i < n - 1; i++) { Console.Write(mat[0, i]); Console.Write( " " ); } // Print second diagonal except last element for (i = 0; i < n - 1; i++) { Console.Write(mat[i, n - i - 1]); Console.Write( " " ); } // Print last row for (i = 0; i < n; i++) { Console.Write(mat[n - 1, i]); Console.Write( " " ); } } // Driver function public static void Main() { int [, ] mat = { { 4, 5, 6, 8 }, { 1, 2, 3, 1 }, { 7, 8, 9, 4 }, { 1, 8, 7, 5 } }; printZform(mat, 4); } } // This code is contributed by Aarti_Rathi |
Javascript
// JavaScript program to print a square // matrix in Z form function printZform(mat, n) { var i=0, j; // print first row except last element for (i = 0; i < n - 1; i++) { document.write(mat[0][i] + " " ); } // Print second diagonal except last element for (i = 0; i < n - 1; i++) { document.write(mat[i][n - i - 1] + " " ); } // Print last row for (i = 0; i < n; i++) { document.write(mat[n - 1][i] + " " ); } } // Driver code var mat = [ [ 4, 5, 6, 8 ], [ 1, 2, 3, 1 ], [ 7, 8, 9, 4 ], [ 1, 8, 7, 5 ] ]; printZform(mat, 4); // This code is contributed by Aarti_Rathi |
Output
4 5 6 8 3 8 1 8 7 5
Time Complexity: O(n)
Auxiliary Space: O(1)
Alternate Simpler Implementation:
Thanks to Aathishithan for suggesting this.
Implementation:
C++14
#include<bits/stdc++.h> using namespace std; #define MAX 100 // C++ program to print a // square matrix in Z form void diag( int arr[][MAX], int n) { int i = 0, j, k; for (i = 0;i < n;i++){ for (j = 0;j < n;j++){ if (i == 0) cout<<arr[i][j]<< " " ; else if (j==n-i-1) cout<<arr[i][j]<< " " ; else if (i == n-1) cout<<arr[i][j]<< " " ; } } } //driver's code int main() { int a[][MAX] = { { 4, 5, 6, 8 }, { 1, 2, 3, 1 }, { 7, 8, 9, 4 }, { 1, 8, 7, 5 } }; diag(a, 4); } |
Java
// Java program to print a // square matrix in Z form import java.lang.*; import java.io.*; class GFG { public static void diag( int arr[][], int n) { int i = 0 , j, k; for (i = 0 ;i < n;i++){ for (j = 0 ;j < n;j++){ if (i == 0 ){ System.out.print(arr[i][j]+ " " ); } else if (j==n-i- 1 ){ System.out.print(arr[i][j]+ " " ); } else if (i == n- 1 ){ System.out.print(arr[i][j]+ " " ); } } } } public static void main(String[] args) { int a[][] = { { 4 , 5 , 6 , 8 }, { 1 , 2 , 3 , 1 }, { 7 , 8 , 9 , 4 }, { 1 , 8 , 7 , 5 } }; diag(a, 4 ); } } |
Python3
# Python3 program to print # square matrix in Z form def diag(arr, n): for i in range (n): for j in range (n): if (i = = 0 ): print (arr[i][j], end = " " ) elif (j = = n - (i + 1 )): print (arr[i][j], end = " " ) elif (i = = n - 1 ): print (arr[i][j], end = " " ) # Driver code if __name__ = = '__main__' : a = [ [ 4 , 5 , 6 , 8 ], [ 1 , 2 , 3 , 1 ], [ 7 , 8 , 9 , 4 ], [ 1 , 8 , 7 , 5 ] ] diag(a, 4 ) # This code is contributed by mohit kumar 29 and improved by Hari Aditya |
C#
// C# program to print a // square matrix in Z form using System; public class GFG { public static void diag( int [,]arr, int n) { int i = 0, j; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { if (i == 0){ Console.Write(arr[i, j]+ " " ); } else if (i == j){ Console.Write(arr[i, j]+ " " ); } else if (i == n-1){ Console.Write(arr[i, j]+ " " ); } } } } public static void Main( string [] args) { int [,]a = { { 4, 5, 6, 8 }, { 1, 2, 3, 1 }, { 7, 8, 9, 4 }, { 1, 8, 7, 5 } }; diag(a, 4); } } // This code is contributed by rrrtnx. |
Javascript
<script> // Javascript program to print a // square matrix in Z form function diag(arr, n) { var i = 0, j; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { if (i == 0){ document.write(arr[i][j]+ " " ); } else if (i == j){ document.write(arr[i][j]+ " " ); } else if (i == n-1){ document.write(arr[i][j]+ " " ); } } } } var a = [ [ 4, 5, 6, 8 ], [ 1, 2, 3, 1 ], [ 7, 8, 9, 4 ], [ 1, 8, 7, 5 ] ]; diag(a, 4); // This code is contributed by rutvik_56. </script> |
Output
4 5 6 8 3 8 1 8 7 5
Time Complexity: O(n*n)
Auxiliary Space: O(1)
Contact Us