以下是一种解决方法的示例代码:
def print_spiral(n):
# 创建一个 n x n 的矩阵并将其初始化为 0
matrix = [[0] * n for _ in range(n)]
# 定义四个边界:上边界、下边界、左边界和右边界
top, bottom, left, right = 0, n - 1, 0, n - 1
# 定义当前要填充的数字
num = 0
# 进行循环,直到填充完所有数字
while num <= n ** 2:
# 从左到右填充上边界
for i in range(left, right + 1):
matrix[top][i] = num
num += 1
top += 1
# 从上到下填充右边界
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 row in matrix:
for num in row:
print(num, end='\t')
print()
# 测试代码
n = int(input("请输入一个整数:"))
print_spiral(n)
这段代码首先创建了一个 n x n 的矩阵,并将其初始化为 0。然后,使用四个边界变量来追踪当前填充位置的边界。通过循环不断填充矩阵,直到填充完所有数字。最后,打印出螺旋矩阵。
例如,如果输入整数为 4,输出的螺旋矩阵为:
0 1 2 3
9 10 11 4
8 7 6 5
希望这个示例能帮助到你!