1 条题解
-
1
#include <iostream> #include <iomanip> using namespace std; int main() { int n; cin >> n; int arr[10][10] = {0}; int x = 0, y = 0; int num = 1; int dir[4][2] = {{0,1}, {1,0}, {0,-1}, {-1,0}}; int d = 0; while (num <= n * n) { arr[x][y] = num++; int nx = x + dir[d][0]; int ny = y + dir[d][1]; if (nx < 0 || nx >= n || ny <0 || ny >=n || arr[nx][ny] != 0) { d = (d + 1) % 4; nx = x + dir[d][0]; ny = y + dir[d][1]; } x = nx; y = ny; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << setw(3) << arr[i][j]; } cout << endl; } return 0; }
- 1
信息
- ID
- 143
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 182
- 已通过
- 49
- 上传者