100
#LS1019. 【入门】蛇形方阵【入门】蛇形方阵
题目描述
在 方阵里填入 要求填成蛇形。例如,当 时方阵如图所示:
| 1 | 2 | 3 | 4 |
|---|---|---|---|
| 12 | 13 | 14 | 5 |
| 11 | 16 | 15 | 6 |
| 10 | 9 | 8 | 7 |
输入格式
一行一个正整数 。
输出格式
的蛇形方阵,两数之间用一空格隔开。
4
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
提示
- 二维数组的应用
- 假设初始坐标是左上角的 (x, y) = (0, 0)
- 设二维数组
// {0, 1} 表示 (x = x + 0, y = y + 1), 往右走
// {1, 0} 表示 (x = x + 1, y = y + 0), 往下走
// {0, -1} 表示 (x = x + 0, y = y - 1), 往左走
// {-1, 0} 表示 (x = x -1, y = y + 0), 往上走
int d[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
- 最开始 (x, y) 按照 {0, 1} 走
- 走到方阵外或者走到已经走过的格子,就换成 {1, 0}
- 继续走到方阵外或者走到已经走过的格子,就换成 {0, -1}
- 继续走到方阵外或者走到已经走过的格子,就换成 {-1, 0}
- 继续走到方阵外或者走到已经走过的格子,就换回 {0, 1}
- 重复上述过程直到写完所有数
数据规模与限制
- 300ms, 1024KiB for each test case.
相關
在下列比賽中: