using System; using System.Collections.Generic; using System.Linq; public class Test { public static void Main() { var n = int.Parse(Console.ReadLine()); var array = new int[n,n]; int x = 0; int y = -1; int z = 0; int i = 1; while(i <= n * n) { switch (z % 4) { case 0: if(y == n - 1 || array[x, y + 1] != 0) z++; break; case 1: if(x == n - 1 || array[x + 1, y] != 0) z++; break; case 2: if(y == 0 || array[x, y - 1] != 0) z++; break; case 3: if(x == 0 || array[x - 1, y] != 0) z++; break; } switch (z % 4) { case 0: y++; break; case 1: x++; break; case 2: y--; break; case 3: x--; break; } array[x,y] = i; i++; } for(int j = 0; j < n; j++) { for(int k = 0; k < n; k++) { Console.Write("{0:000}", array[j,k]); if (k < n - 1) Console.Write(' '); } Console.WriteLine(); } } }