Dada una array cuadrada de orden n*n , necesitamos imprimir elementos de la array en forma Z
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
Necesitamos atravesar la primera fila de la array, luego la segunda diagonal y luego la última fila.
Implementación:
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>
Alternativamente, podemos imprimir la primera fila y la segunda diagonal excepto el último elemento y luego la última fila.
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
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
4 5 6 8 3 8 1 8 7 5
Complejidad temporal: O(n)
Espacio auxiliar: O(1)
Implementación alternativa más simple:
Gracias a Aathishithan por sugerir esto.
Implementación:
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>
4 5 6 8 3 8 1 8 7 5
Complejidad temporal: O(n*n)
Espacio auxiliar: O(1)
Este artículo es una contribución de Aarti_Rathi y R_Raj . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA