desislava_topuzakova

01. Fill the Matrix

Jan 15th, 2022
642
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package MultidimensionalArrays_02;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class FillTheMatrix_01 {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.         //"3, A".split(", ") -> ["3", "A"]
  9.         String input = scanner.nextLine();
  10.         int n = Integer.parseInt(input.split(", ")[0]);
  11.         String pattern = input.split(", ")[1];
  12.  
  13.         int [][] matrix = new int [n][n];
  14.         if (pattern.equals("A")) {
  15.             //pattern A -> по колони
  16.             fillMatrixPatternA(matrix);
  17.         } else if (pattern.equals("B")) {
  18.             //pattern B -> aко колоната е четна (редовете от първия към последния);
  19.             // ако колоната е нечетна (редовете от последния към първия)
  20.             fillMatrixPatternB(matrix);
  21.         }
  22.        
  23.         printMatrix(matrix);
  24.     }
  25.  
  26.     private static void printMatrix(int[][] matrix) {
  27.         for (int row = 0; row < matrix.length; row++) {
  28.             for (int col = 0; col < matrix.length; col++) {
  29.                 System.out.print(matrix[row][col] + " ");
  30.             }
  31.             System.out.println();
  32.         }
  33.     }
  34.  
  35.     private static void fillMatrixPatternB(int[][] matrix) {
  36.         int startNumber = 1;
  37.         //четна колона -> редове от 0 до последния
  38.         //нечетна колона -> редове от последния към 0
  39.         for (int col = 0; col < matrix.length; col++) {
  40.             if (col % 2 == 0) {
  41.                 for (int row = 0; row < matrix.length; row++) {
  42.                     matrix[row][col] = startNumber;
  43.                     startNumber++;
  44.                 }
  45.             } else {
  46.                 for (int row = matrix.length - 1; row >= 0; row--) {
  47.                     matrix[row][col] = startNumber;
  48.                     startNumber++;
  49.                 }
  50.             }
  51.         }
  52.     }
  53.  
  54.     private static void fillMatrixPatternA(int[][] matrix) {
  55.         int startNumber = 1;
  56.         for (int col = 0; col < matrix.length; col++) {
  57.             for (int row = 0; row < matrix.length; row++) {
  58.                 matrix[row][col] = startNumber;
  59.                 startNumber++;
  60.             }
  61.         }
  62.     }
  63. }
RAW Paste Data