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)