4 条题解
-
1
wasd = [[0, 1], [-1, 0], [0, -1], [1, 0]]#控制snake方向 n = int(input()) square = [[0 for _ in range(n + 1)] for __ in range(n + 1)]#创建初始矩阵,多创建一格防止outofindex def sq_print(): #按题目格式打印最终结果 for i in range(n): for j in range(n): print(square[i][j], end = ' ') print() def sq_fill(): x = n - 1 y = 0#初始位置 ctrl = 0#控制转向符 for i in range(1, n * n + 1): square[y][x] = i x += wasd[ctrl][0] y += wasd[ctrl][1] if ((x == n - 1) and (y == n - 1)) or ((x == 0) and (y == n - 1)) or ((x == 0) and (y == 0)) or (square[y + wasd[ctrl][1]][x + wasd[ctrl][0]] != 0): #当snake触及矩阵底部,或snake将要前往的下一个位置已经有数字的时候,控制转向 ctrl += 1 ctrl %= 4#控制符应该是{0,1,2,3},即模4的循环群 sq_fill() sq_print()
信息
- ID
- 131
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 541
- 已通过
- 179
- 上传者