#include<iostream> #include<vector> #include<iomanip> using namespace std; int main() { int m, n; cin >> m >> n; vector<vector<int> > arr(m); for (int i = 0; i < m; i++) arr[i].resize(n); int flag = 0; int k = 0, i = 0, j = 0; while (k != m * n) { arr[i][j] = (k % 26) + 1; switch (flag) { case 0: if (j < n - 1 && arr[i][j + 1] == 0)j++; else { i++; flag = 1; } break; case 1: if (i < m - 1 && arr[i + 1][j] == 0)i++; else { j--; flag = 2; } break; case 2: if (j > 0 && arr[i][j - 1] == 0)j--; else { i--; flag = 3; } break; case 3: if (arr[i - 1][j] == 0)i--; else { j++; flag = 0; } break; } k++; } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) cout << setw(4) << char(arr[i][j] - 1 + 'A') ; cout << endl; } } |
Double click to view unformatted code.