题目描述
给出一个正整数 n,按从外向内的螺旋顺序打印 1 到 n2 的所有数值
示例
输入:3
输出:
[
[1, 2, 3],
[8, 9, 4],
[7, 6, 5]
]
代码
def Matrixclass(n):
matrix = [[-1]*n for _ in range(n)]
# 定义边界
left, right, up, down = 0, n-1, 0, n-1
# 定义数字
number = 1
# 打印第一条边
for x in range(left, right):
matrix[up][x] = number
number += 1
# 打印第二条边
for x in range(up, down):
matrix[x][right] = number
number += 1
# 打印第三条边
for x in range(right, left, -1):
matrix[down][x] = number
number += 1
# 打印第四条边
for x in range(down, up, -1):
matrix[x][left] = number
number += 1
if n%2:
matrix[n//2][n//2] = number # 如果n是奇数,中心放最大值
return matrix
if __name__ == "__main__":
n = int(input("Please input number: "))
result = Matrixclass(n)
print(result)