Advertisement
BorislavBorisov

Task.Print Spiral Matrix

Oct 17th, 2015
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.01 KB | None | 0 0
  1. using System;
  2. class PrintMatrix
  3. {
  4.     static void Main()
  5.     {
  6.         int N = int.Parse(Console.ReadLine());
  7.         int[,] matrix = new int[N, N];
  8.         int row = 0, col = 0, counter = 1, circleSide = N, circle = 0;//тази променлива е важна
  9.         for (int i = 0; i < N - 1; i++)
  10.         {
  11.             while(circleSide > 0)
  12.             {
  13.                 matrix[row, col] = counter++;
  14.                 circleSide--;
  15.                 col++;
  16.             }
  17.             circle++;//4,2 (завъртания)
  18.             circleSide = N - circle;
  19.             col--;
  20.             row++;
  21.             while(circleSide > 0)
  22.             {
  23.                 matrix[row, col] = counter++;
  24.                 circleSide--;
  25.                 row++;
  26.             }
  27.             circleSide = N - circle;
  28.             row--;
  29.             col--;
  30.             while(circleSide > 0)
  31.             {
  32.                 matrix[row, col] = counter++;
  33.                 circleSide--;
  34.                 col--;
  35.             }
  36.             circle++;//3,1
  37.             circleSide = N - circle;
  38.             row--;
  39.             col++;
  40.             while(circleSide > 0)
  41.             {
  42.                 matrix[row,col] = counter++;
  43.                 circleSide--;
  44.                 row--;
  45.             }
  46.             circleSide = N - circle;
  47.             row++;
  48.             col++;
  49.         }
  50.         PrintResult(matrix, N);
  51.     }
  52.  
  53.     private static void PrintResult(int[,] matrix,int N)
  54.     {
  55.         for (int rows = 0; rows < N; rows++)
  56.         {
  57.             for (int cols = 0; cols < N; cols++)
  58.             {
  59.                 if(matrix[rows,cols] > 9) //този иф е заради правилното принтене
  60.                 {
  61.                     Console.Write(matrix[rows, cols] + " ");
  62.                 }
  63.                 else
  64.                 {
  65.                     Console.Write(matrix[rows, cols] + "  ");
  66.                 }
  67.             }
  68.             Console.WriteLine();
  69.         }
  70.         Console.WriteLine();
  71.     }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement