Advertisement
nikolov_k

14 Numbers as spiral

Dec 6th, 2012
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.70 KB | None | 0 0
  1. using System;
  2.  
  3. class NumbersAsSpiral
  4. {
  5.     static void Main()
  6.     {
  7.         Console.Write("Input positive integer N (N<20)");
  8.         byte n = byte.Parse(Console.ReadLine());
  9.         int[,] array = new int[n, n];
  10.         byte x = 0;
  11.         byte y = 0;
  12.         bool xUp = false;
  13.         bool yUp = true;
  14.         bool xDown = false;
  15.         bool yDown = false;
  16.         for (int i = 1; i <= n * n; i++)
  17.         {
  18.             array[x, y] = i;
  19.             if (yUp && ((y + 1 >= n) || (array[x, y + 1] > 0)))
  20.             {
  21.                 yUp = false;
  22.                 xUp = true;
  23.             }
  24.             if (xUp && ((x + 1 >= n) || (array[x + 1, y] > 0)))
  25.             {
  26.                 xUp = false;
  27.                 yDown = true;
  28.             }
  29.             if (yDown && ((y == 0) || (array[x, y - 1] > 0)))
  30.             {
  31.                 yDown = false;
  32.                 xDown = true;
  33.             }
  34.             if (xDown && ((x == 0) || (array[x - 1, y] > 0)))
  35.             {
  36.                 xDown = false;
  37.                 yUp = true;
  38.             }
  39.             if (xUp)
  40.             {
  41.                 x++;
  42.             }
  43.             if (xDown)
  44.             {
  45.                 x--;
  46.             }
  47.             if (yUp)
  48.             {
  49.                 y++;
  50.             }
  51.             if (yDown)
  52.             {
  53.                 y--;
  54.             }
  55.         }
  56.         printArray(array);
  57.     }
  58.  
  59.     public static void printArray(int[,] array)
  60.     {
  61.         for (int i = 0; i < array.GetLength(0); i++)
  62.         {
  63.             for (int j = 0; j < array.GetLength(1); j++)
  64.             {
  65.                 Console.Write("{0,4}",array[i,j]);
  66.             }
  67.             Console.WriteLine();
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement