Advertisement
ralka

Spiral Matrix

May 15th, 2016
331
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.01 KB | None
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _12.Fill_Matrix_A
  8. {
  9.     class FillMatrixA
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             int n = int.Parse(Console.ReadLine());
  14.  
  15.             int[,] matrix = new int[n, n];
  16.  
  17.             FillSpral(matrix, n);
  18.             PrintMatrix(matrix);
  19.         }
  20.  
  21.         private static void FillSpral(int[,] matrix, int n)
  22.         {
  23.             int element = 0;
  24.             int col = -1;
  25.             int row = -1;
  26.             while (element < n * n)
  27.             {
  28.                 row++;
  29.                 col++;
  30.                 while (row < n && matrix[row, col] == 0)
  31.                 {
  32.                     element++;
  33.                     matrix[row, col] = element;
  34.                     row++;
  35.                 }
  36.                 row--;
  37.                 col++;
  38.                 while (col < n && matrix[row, col] == 0)
  39.                 {
  40.                     element++;
  41.                     matrix[row, col] = element;
  42.                     col++;
  43.                 }
  44.                 col--;
  45.                 row--;
  46.                 while (row >= 0 && matrix[row, col] == 0)
  47.                 {
  48.                     element++;
  49.                     matrix[row, col] = element;
  50.                     row--;
  51.                 }
  52.                 row++;
  53.                 col--;
  54.                 while (col >= 0 && matrix[row, col] == 0)
  55.                 {
  56.                     element++;
  57.                     matrix[row, col] = element;
  58.                     col--;
  59.                 }
  60.             }
  61.         }
  62.  
  63.         private static void PrintMatrix(int[,] matrix)
  64.         {
  65.             for (int row = 0; row < matrix.GetLength(0); row++)
  66.             {
  67.                 for (int col = 0; col < matrix.GetLength(1); col++)
  68.                 {
  69.                     Console.Write(matrix[row, col].ToString().PadLeft(3) + " ");
  70.                 }
  71.                 Console.WriteLine();
  72.             }
  73.         }
  74.     }
  75. }
Advertisement
RAW Paste Data Copied
Advertisement