Advertisement
Alsturm

Spiral

Aug 10th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.50 KB | None | 0 0
  1.     static int sizeOfSide = 5;
  2. //    static int sizeOfArray = sizeOfSide - 1;
  3.     static int[][] matrix = new int[sizeOfSide][sizeOfSide];
  4.     static int count = 1;
  5.     public static void main(String[] args) {
  6.         int level = 0;
  7.         for (level = 0; level < sizeOfSide / 2; level++) {
  8.             fillFourSides(level);
  9.         }
  10.         // Filling last element
  11.         if (sizeOfSide % 2 == 1) {
  12.             matrix[level][level] = count++;
  13.         }
  14.         printMatrix(matrix, 4);
  15.     }
  16.  
  17.  
  18.     private static void fillFourSides(int level) {
  19.         // Filling top side
  20.         for (int i = 0 + level; i < sizeOfSide - level; i++) {
  21.             matrix[level][i] = count++;
  22.         }
  23.         // Filling right side
  24.         for (int i = 1 + level; i < sizeOfSide - level; i++) {
  25.             matrix[i][sizeOfSide - 1 - level] = count++;
  26.         }
  27.         // Filling bottom
  28.         for (int i = sizeOfSide - 2 - level; i >= level; i--) {
  29.             matrix[sizeOfSide - 1 - level][i] = count++;
  30.         }
  31.         // Filling left side
  32.         for (int i = sizeOfSide - 2 - level; i >= level + 1 ; i--) {
  33.             matrix[i][level] = count++;
  34.         }
  35.     }
  36.  
  37.     private static void printMatrix(int[][] matrix, int digits) {
  38.         String pattern = "%" + digits + "d";
  39.         for (int i = 0; i < sizeOfSide; i++) {
  40.             for (int j = 0; j < sizeOfSide; j++) {
  41.                 System.out.printf(pattern, matrix[i][j]);
  42.             }
  43.             System.out.println();
  44.         }
  45.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement