Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
72058 | 殷老师 | 方阵填数 | Python3 | Accepted | 33 MS | 3832 KB | 913 | 2024-04-30 19:23:38 |
def generate_spiral_matrix(N): matrix = [[0] * N for _ in range(N)] num = 1 top, bottom, left, right = 0, N - 1, 0, N - 1 # 从外向内逐层填入数字 while num <= N * N: for i in range(top, bottom + 1):# 从上到下填入数字 matrix[i][right] = num num += 1 right -= 1 for i in range(right, left - 1, -1):# 从右到左填入数字 matrix[bottom][i] = num num += 1 bottom -= 1 for i in range(bottom, top - 1, -1): # 从下到上填入数字 matrix[i][left] = num num += 1 left += 1 for i in range(left, right + 1): # 从左到右填入数字 matrix[top][i] = num num += 1 top += 1 return matrix N = int(input()) matrix = generate_spiral_matrix(N) for row in matrix: print(*row)