【问题描述】
如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 …
3 5 8 14 …
4 9 13 …
10 12 …
11 …
…
容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
解题:
1.结构:三个循环
每个小循环填满矩阵斜着的一列,两个小循环分别代表不同的方向
两个小循环构成一个大循环,大循环用于控制方向
思路来源于二叉树的遍历,用代码顺序控制遍历顺序
2.函数:函数的作用在于跳出多重循环
def fun():
array = [[0] * 100 for i in range(100)]
x, y, count = 0, 0, 1
while True:
while True:
array[y][x] = count
if x == 19 and y == 19:
return array[19][19]
count += 1
if y == 0:
x += 1
break
x += 1
y -= 1
while True:
array[y][x] = count
if x == 19 and y == 19:
return array[19][19]
count += 1
if x == 0:
y += 1
break
x -= 1
y += 1
print(fun())