#136. 蛇形填数

蛇形填数

说明

在一个 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...)从右到左的规律。