day25(3) 蛇形填空

【问题描述】

如下图所示,小明用从 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())

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_51174011/article/details/113690729