如何编写代码来打印一个n×n(n小于10)的螺旋方阵,例如5×5的螺旋矩阵?以及,请解释螺旋方阵的定义和其排列的逻辑规则。
时间: 2024-12-20 10:23:29 浏览: 21
螺旋方阵也称为蛇形矩阵或螺旋矩阵,是一种特殊的矩阵布局,其中元素按照一种螺旋路径从左上角开始向外扩展。对于给定的n×n矩阵(比如5×5),其排列规则如下:
1. 首先从左上角开始,每次移动一个单元格向下、向右,然后继续下一个单元格直到到达对角线。
2. 接着转向右边,继续向下移动直到到达右下角。
3. 然后回转向上,沿着对角线左边返回到左上角。
4. 最后再次转向左边,依次回到初始位置,完成一次完整的螺旋循环。
以下是编写一个5×5螺旋矩阵的Python示例代码:
```python
def spiral_matrix(n):
matrix = [[0] * n for _ in range(n)]
top, bottom, left, right = 0, n - 1, 0, n - 1
while top <= bottom and left <= right:
# 左侧
for i in range(left, right + 1):
matrix[top][i] = i
top += 1
# 上部
for i in range(top, bottom + 1):
matrix[i][right] = n - 1 - i
right -= 1
# 右侧
if top <= bottom:
for i in range(right, left - 1, -1):
matrix[bottom][i] = n - 1 - i
bottom -= 1
# 下部
if left <= right:
for i in range(bottom, top - 1, -1):
matrix[i][left] = i
left += 1
return matrix
# 打印5x5螺旋矩阵
print(spiral_matrix(5))
```
阅读全文