输出一个不大于九的整数n,输出n*n的蛇形方阵
时间: 2023-04-18 20:00:40 浏览: 67
以下是Python代码实现:
n = int(input("请输入一个不大于9的整数:"))
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(matrix[i][j], end="\t")
print()
输出示例:
请输入一个不大于9的整数:5
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
解释:
输入了5,即需要输出5*5的蛇形方阵。首先创建一个5*5的矩阵,然后从左到右、从右到左、从左到右……依次填充数字,最后输出整个矩阵。
相关问题
输入整数 N,输出相应蛇形方阵
好的,我可以回答这个问题。以下是输出蛇形方阵的代码:
```
#include <stdio.h>
int main()
{
int n, i, j, k, a[100][100];
scanf("%d", &n);
for (i = ; i < n; i++)
{
for (j = ; j < n; j++)
{
a[i][j] = ;
}
}
k = 1;
for (i = ; i < n; i++)
{
if (i % 2 == )
{
for (j = ; j < n; j++)
{
a[i][j] = k;
k++;
}
}
else
{
for (j = n - 1; j >= ; j--)
{
a[i][j] = k;
k++;
}
}
}
for (i = ; i < n; i++)
{
for (j = ; j < n; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
return ;
}
```
希望能对您有所帮助!
给出一个不大于 20 的正整数 n,输出 n×n 的蛇形方阵。 从左上角填上 1 开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用 4 个字符,后面使用空格补齐。
以下是 Python 代码实现:
```python
n = int(input()) # 读入正整数n
# 初始化一个n×n的矩阵
matrix = [[0] * n for i in range(n)]
# 定义蛇形填数的初始位置和方向
x, y, dx, dy = 0, 0, 0, 1
# 开始填数
for i in range(1, n * n + 1):
matrix[x][y] = i # 填入数字
# 判断下一个位置是否已经填过数或者超出矩阵范围
if matrix[(x + dx) % n][(y + dy) % n] != 0:
dx, dy = dy, -dx # 改变方向
x, y = x + dx, y + dy # 移动位置
# 输出蛇形方阵
for i in range(n):
for j in range(n):
print("{:4d}".format(matrix[i][j]), end="")
print()
```
示例输入:
```
5
```
示例输出:
```
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
```