用python程序编写,、输入一个不大于 9 的正整数 n,输出 n×n 的蛇形方阵。所谓蛇形方阵就是从左上角填上 1 开始,如样例所示不断沿斜线折返填满数字
时间: 2024-12-06 11:22:15 浏览: 14
在Python中,我们可以使用嵌套循环和一些条件判断来生成一个指定大小的蛇形矩阵。这里是一个简单的示例:
```python
def snake_matrix(n):
matrix = [[0] * n for _ in range(n)] # 初始化一个全零的n*n矩阵
x, y = 0, 0 # 初始位置 (0,0)
num = 1 # 当前填充的数字
while num <= n**2:
matrix[x][y] = num # 将数字放在当前位置
num += 1 # 更新数字
# 根据方向改变坐标
if x > 0 and y < n - 1: # 向右下移动
x -= 1
y += 1
elif x < n - 1 and y > 0: # 向左上移动
x += 1
y -= 1
elif x == 0 and y < n - 1: # 向右移动
y += 1
else: # 向左移动
x -= 1
return matrix
# 示例
n = int(input("请输入不大于 9 的正整数: "))
snake_array = snake_matrix(n)
for row in snake_array:
print(row)
相关问题
Python编写程序,输入正整数n,打印如下规律的蛇形矩阵(n*n,最大值n*n要在矩阵的右下角)。 输出的每个数左对齐,占5位宽。
好的,让我来为您解答这个问题。以下是 Python 程序代码:
```
n = int(input("请输入一个正整数n:"))
matrix = [[0] * n for i in range(n)]
x, y = 0, 0 # x,y为当前打印的位置
dx, dy = 0, 1 # dx,dy为当前方向,初始方向向右
for i in range(n * n):
matrix[x][y] = i + 1
nx, ny = x + dx, y + dy # nx,ny为下一个位置
if 0 <= nx < n and 0 <= ny < n and matrix[nx][ny] == 0:
x, y = nx, ny
else:
# 改变方向
dx, dy = dy, -dx # 将方向向右旋转90度
x, y = x + dx, y + dy
# 打印蛇形矩阵
for i in range(n):
for j in range(n):
print('{0:<5}'.format(matrix[i][j]), end="")
print()
```
输入正整数n后,程序首先创建一个n * n的零矩阵。然后,通过模拟蛇形打印的过程,将1到n * n的数字填充到矩阵中。最后,按照要求格式打印出蛇形矩阵。希望这个程序能够帮到您!
python编写程序,输入正整数n,计算并打印如下规律的蛇形矩阵(n*n,最大值n*n要在矩阵的右下角)。
好的,这个问题我可以回答。以下是 Python 代码:
```
n = int(input("请输入正整数n:"))
matrix = [[0 for i in range(n)] for j in range(n)]
num = 1
for i in range(n):
if i % 2 == 0:
for j in range(n):
matrix[i][j] = num
num += 1
else:
for j in range(n-1, -1, -1):
matrix[i][j] = num
num += 1
for i in range(n):
for j in range(n):
print('{:>4}'.format(matrix[i][j]), end='')
print()
```
请运行上述代码。
阅读全文