10 条题解
-
0
#include<iostream> #include<vector> #include<iomanip> using namespace std; int main() { int m, n; int num = 1; int flag = 1; cin >> m >> n; int x = 0, y = n - 1; vector<vector<int>> arr(m, vector<int>(n, 0)); for(int i = 0; i < m * n; i++) { arr[x][y] = num++; if(flag == 1) { if(x < m - 1 && arr[x + 1][y] == 0) { x++; } else { flag = 2; y--; } } else if(flag == 2) { if(y > 0 && arr[x][y - 1] == 0) { y--; } else { flag = 3; x--; } } else if(flag == 3 ) { if(x > 0 && arr[x - 1][y] == 0) { x--; } else { flag = 4; y++; } } else if(flag == 4) { if(y < n - 1 && arr[x][y + 1] == 0) { y++; } else { flag = 1; x++; } } } for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { printf("%5d", arr[i][j]); } cout << endl; } return 0; }
信息
- ID
- 78
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 1257
- 已通过
- 327
- 上传者