输入n(0<n<=20), 输出如下方阵(如n=4时):
1 3 4 10
2 5 9 11
6 8 12 15
7 13 14 16
输入n(0<n<=20), 输出如下方阵(如n=4时):
1 3 4 10
2 5 9 11
6 8 12 15
7 13 14 16
n = 4
c = 1
s = [[0 for _ in range(n)] for i in range(n)]
# 左上三角
for i in range(n):
for j in range(i+1):
a, b = (i-j, j) if i%2 != 0 else (j, i-j)
s[a][b] = c
c += 1
# 右下三角
for i in range(n, n*2):
for j in range(1, n*2-i):
a, b = (n-j, i-n+j) if i%2 != 0 else (i-n+j, n-j)
s[a][b] = c
c += 1
# 打印结果
for i in s:
print(i)
输出结果
[1, 3, 4, 10]
[2, 5, 9, 11]
[6, 8, 12, 15]
[7, 13, 14, 16]
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答971 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
当a = 3,输出
当a = 4,输出
当a = 1,输出
代码写的比较直白,没有优化,大概就是从下标跟你的输入值的关系着手分析。