Advertisement
GrandtherAzaMarks

Spiral Array

Apr 17th, 2018
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     int n = 0, m = 0;
  8.     cin >> n;
  9.     m = n;
  10.     int HelpN = n, HelpM = m;
  11.     int A[n][m];
  12.     int sum = n * m;
  13.     int Y = 0, X = 0;
  14.     int counter = 1;
  15.     for (int i = 0 ; i < n; i++)
  16.         for (int j = 0 ; j < m; j++)
  17.             A[i][j] = 0;
  18.    
  19.     while (n > 0)
  20.     {
  21.         for (int i = 0; i < 4; i++)
  22.         {
  23.             for (int j = 0; j < max(m,n); j++)
  24.             {
  25.                 if (i == 0 && j < m - X && counter <= sum)
  26.                     A[i + Y][j + X] = counter++;
  27.                 if (i == 1 && j < n - Y && j != 0 && counter <= sum)
  28.                     A[j + Y][m - 1] = counter++;
  29.                 if (i == 2 && j < m - X && j != 0 && counter <= sum)
  30.                     A[n - 1][m - (j + 1)] = counter++;
  31.                 if (i == 3 && j < n - (Y + 1)&& j != 0 && counter <= sum)
  32.                     A[n - (j + 1)][Y] = counter++;
  33.             }
  34.         }
  35.         n--; m--;
  36.         Y += 1; X += 1;
  37.     }
  38.    
  39.     for (int i = 0; i < HelpN; i++)
  40.     {
  41.         for (int j = 0; j < HelpM; j++)
  42.             printf("%4d", A[i][j]);
  43.         cout << endl;
  44.     }
  45.    
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement