Advertisement
striking

Untitled

Dec 24th, 2013
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.07 KB | None | 0 0
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. class PrintMatrixSizeNFour
  5. {
  6.     static int N = 0;
  7.     static void Main()
  8.     {
  9.         N = int.Parse(Console.ReadLine());
  10.         int[,] matrix = new int[N, N];
  11.         int loops = 0;
  12.         int numberOfOperations = (N - 1) * 2 + 1;
  13.  
  14.         while (loops <= numberOfOperations)
  15.         {
  16.             PrintMatrix(FirstSide(matrix, num));
  17.             loops++;
  18.             if (loops == numberOfOperations)
  19.             {
  20.                 break;
  21.             }
  22.  
  23.             PrintMatrix(SecondSide(matrix, num));
  24.             loops++;
  25.             if (loops == numberOfOperations)
  26.             {
  27.                 break;
  28.             }
  29.  
  30.             PrintMatrix(ThirdSide(matrix, num));
  31.             loops++;
  32.             if (loops == numberOfOperations)
  33.             {
  34.                 break;
  35.             }
  36.  
  37.             PrintMatrix(FourthSide(matrix, num));
  38.             loops++;
  39.         }
  40.     }
  41.  
  42.    
  43.     static int firstSideModifi = 0;
  44.     static int num = 1;
  45.     static int secondSideModifi = 0;
  46.     static int thirdSideModifi = 0;
  47.     static int fourthSideModifi = 0;
  48.     static List<List<int>> matrix = new List<List<int>>();
  49.  
  50.     static int[,] FirstSide(int[,] matrix, int num)
  51.     {
  52.         for (int p = firstSideModifi; p <= firstSideModifi; p++)
  53.         {
  54.             for (int i = firstSideModifi; i < matrix.GetLength(0) - firstSideModifi; i++)
  55.             {
  56.                 matrix[i, p] = num;
  57.                 num++;
  58.             }
  59.         }
  60.         firstSideModifi++;
  61.         return matrix;
  62.     }
  63.  
  64.     static int[,] SecondSide(int[,] matrix, int num)
  65.     {
  66.         for (int i = (N - 1) - secondSideModifi; i <= (N - 1) - secondSideModifi; i++)
  67.         {
  68.             for (int p = 1 + secondSideModifi; p < N - secondSideModifi; p++)
  69.             {
  70.                 matrix[i, p] = num;
  71.                 num++;
  72.             }
  73.         }
  74.         secondSideModifi++;
  75.         return matrix;
  76.     }
  77.  
  78.     static int[,] ThirdSide(int[,] matrix, int num)
  79.     {
  80.         for (int p = (N - 1) - thirdSideModifi; p <= (N - 1) - thirdSideModifi; p++)
  81.         {
  82.             for (int i = (N - 2) - thirdSideModifi; i >= thirdSideModifi; i--)
  83.             {
  84.                 matrix[i, p] = num;
  85.                 num++;
  86.             }
  87.         }
  88.         thirdSideModifi++;
  89.         return matrix;
  90.     }
  91.  
  92.     static int[,] FourthSide(int[,] matrix, int num)
  93.     {
  94.         for (int i = 0 + fourthSideModifi; i <= fourthSideModifi; i++)
  95.         {
  96.             for (int p = (N - 2) - fourthSideModifi; p >= 1 + fourthSideModifi; p--)
  97.             {
  98.                 matrix[i, p] = num;
  99.                 num++;
  100.             }
  101.         }
  102.         fourthSideModifi++;
  103.         return matrix;
  104.     }
  105.  
  106.     static int[,] PrintMatrix(int[,] matrix)
  107.     {
  108.         for (int i = 0; i < matrix.GetLength(0); i++)
  109.         {
  110.             for (int p = 0; p < matrix.GetLength(1); p++)
  111.             {
  112.                 Console.Write("{0, 6} ", matrix[i, p]);
  113.             }
  114.             Console.WriteLine();
  115.         }
  116.         return matrix;
  117.     }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement