5 條題解
-
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
- 标签
- (無)
- 遞交數
- 690
- 已通過
- 238
- 上傳者