Program för att skriva ut matris i Z-form

Program för att skriva ut matris i Z-form

Givet a fyrkant ordningsmatris n*n vi måste skriva ut element i matrisen MED 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.webp

Vi måste korsa den första raden i matrisen, sedan den andra diagonalen och sedan den sista raden.

Genomförande:

C++
   // CPP program to print a square matrix in Z form   #include          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 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>   

Produktion
4 5 6 8 3 8 1 8 7 5  

Tidskomplexitet: På)
Hjälputrymme: O(1)

Alternativt kan vi skriva ut första raden och andra diagonalen förutom sista elementet och sedan sista raden.

C++14
   // CPP program to print a square matrix in Z form   #include          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   

Produktion
4 5 6 8 3 8 1 8 7 5  

Tidskomplexitet: På)
Hjälputrymme: O(1)

Alternativ enklare implementering:  

Tack vare Aathishithan för att föreslå detta.

Genomförande:

C++14
   #include       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>   

Produktion
4 5 6 8 3 8 1 8 7 5  

Tidskomplexitet: O(n*n)
Hjälputrymme: O(1)

 

Skapa frågesport