Program to Print Matrix in Z form (original) (raw)
Last Updated : 16 Feb, 2023
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 ResultDriver 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
JavaScript
`
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
`
Output
4 5 6 8 3 8 1 8 7 5
Time Complexity: O(n*n)
Auxiliary Space: O(1)