R语言 CGLib动态代理 android教程 java 线程池 wxRuby unity3d memory plugins cassandra scope jquery移除子元素 oracle分页关键字 linux查看mysql进程 linux超级用户 h5下拉刷新 maya曲线建模 本地安装mysql python中items python命令 java抽象方法 java的方法 java重命名 java遍历set 服务器系统下载 火牛软件 din字体下载 vbs编程教学 神剪辑教程 maxtoc4d js延迟加载 groupy 陌陌电脑直播设置教程 掌门一对一下载 VSPD 快手规则 c语言从入门到精通 五笔字型86版 图片文字提取软件 日文游戏乱码转换工具 清华天河
当前位置: 首页 > 学习教程  > python

day25(3) 蛇形填空

2021/2/6 22:30:36 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

【问题描述】 如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。 1 2 6 7 15 … 3 5 8 14 … 4 9 13 … 10 12 … 11 … … 容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少? 【答案提交】 这是一道结果…

【问题描述】

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

在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_2000136.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?