说明
在一个 n \times n 的方阵中,将数字 1 到 n^2 按照蛇形(S 形)填入:
- 第 1 行从左到右填 1, 2, 3, \dots, n
- 第 2 行从右到左填 n+1, n+2, \dots, 2n
- 第 3 行从左到右填……
- 以此类推,奇数行从左到右,偶数行从右到左
例如 n=4:
1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13
请输出填好的方阵。
输入格式
一行,一个整数 n(1 \le n \le 100)。
输出格式
n 行,每行 n 个整数,数字间用一个空格隔开。每个数字至少占 3 个字符宽度(打印时使用宽度为 3 的右对齐格式)。
4
1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13
提示
方法一:逐行判断奇偶
num = 1
for i in range(n):
row = list(range(num, num + n))
if i % 2 == 1:
row.reverse()
# 格式化输出
print(' '.join(f'{x:3d}' for x in row))
num += n
方法二:二维列表先填再输出。关键是掌握奇数行(0,2,4...)从左到右、偶数行(1,3,5...)从右到左的规律。