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

https://media.geeksforgeeks.org/wp-content/uploads/Capture-16.png

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

mat,mat, mat,n) { // print first row for($i = 0; i<i < i<n; $i++) echo mat[0][mat[0][mat[0][i] , " "; // Print diagonal i=1;i = 1;i=1;j = $n - 2; // print diagonal while ($i < nandn and nandj >= 0) { echo mat[mat[mat[i][$j] , " "; $i++; $j--; } // Print last row for ( i=1;i = 1; i=1;i < n;n; n;i++) echo mat[mat[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

`

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)