蛇形填数 python
时间: 2023-12-26 13:28:50 浏览: 144
以下是用Python实现蛇形填数的代码示例:
```python
def snake_fill(n):
matrix = [[0] * n for _ in range(n)] # 创建一个n*n的二维数组,并初始化为0
num = 1 # 要填入的数字
direction = 1 # 方向,1表示向右,-1表示向左
row, col = 0, 0 # 当前位置的行和列
for _ in range(n * n):
matrix[row][col] = num # 将数字填入当前位置
num += 1
# 判断是否需要改变方向
if direction == 1 and (col == n - 1 or matrix[row][col + 1] != 0):
direction = -1
elif direction == -1 and (col == 0 or matrix[row][col - 1] != 0):
direction = 1
# 根据方向更新当前位置
if direction == 1:
col += 1
else:
col -= 1
# 判断是否需要改变行
if row < n - 1 and matrix[row + 1][col] == 0:
row += 1
return matrix
n = int(input("请输入正整数n:"))
result = snake_fill(n)
for row in result:
print(row)
```
这段代码使用了一个n*n的二维数组来表示方阵,并按照蛇形填数的规则进行填充。通过判断当前位置的行、列以及方向,来确定下一个要填入的位置。最后将填好的方阵打印出来。
阅读全文