sdk Avalon vue使用教程 jq去空格 db2从入门到精通 css面试题 js数组截取前5个 matlab图像滤波 单片机开发板工作原理 python练习 mysql 连接 python输出 python关键字 python类与对象 python中的if语句 python的安装路径 java抽象 java编程入门 java开发环境搭建 java学习平台 java平台 java删除文件 java调用接口 俄罗斯方块java代码 数据库系统概论第五版 stata软件 离散数学pdf js获取父节点 视频加字幕软件 qq钱包实名认证 工信部手机入网查询 脚本网站 超过响应缓冲区限制 backtrack4 jsp源代码 骰子牛牛 python爬取图片 cdr填充颜色 smartupload 括号符号大全
当前位置: 首页 > 学习教程  > python

蓝桥杯每日一题(26)蛇形填数(python)

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

Topic 试题 C: 蛇形填数 本题总分:10 分 【问题描述】 如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。 1 2 6 7 15 … 3 5 8 14 … 4 9 13 … 10 12 … 11 … … 容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的…

Topic

试题 C: 蛇形填数
本题总分:10 分

【问题描述】

如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 …
3 5 8 14 …
4 9 13 …
10 12 …
11 …

容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列的数是多少?

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

Solution

我们可以在矩阵中寻找一些规律
先设置一个范围较大的矩阵
(在这里设置的是200 * 200)

规律:

可以斜着来看矩阵
当i为偶数的时候,数字都是从左下向右上填充的
当i为奇数的时候,数字都是从右上向左下填充的。

那么我们就可以利用这个规律来实现矩阵
循环次数从0开始
设置填入的数字num为0

如果i为偶数:

偶数序列第一个数固定为左下
设置坐标纵坐标,横坐标
按顺序纵坐标减一,横坐标加一
即能实现从左下到右上进行遍历
在遍历的同时填入的数字num + 1,计算本序列填入的数字个数count
填入的数字个数即为序列纵坐标的值

同样如果i为奇数:

奇数序列第一个数固定为右上
设置坐标纵坐标,横坐标
按顺序纵坐标加一,横坐标减一
即能实现从右上到左下进行遍历
在遍历的同时填入的数字num + 1,计算本序列填入的数字个数count
填入的数字个数即为序列横坐标的值

Code

import numpy as np

data = np.zeros((200, 200))
num = 0

for i in range(60):
    if i % 2 == 0:
        count = 0
        x, y = i, 0

        while count <= i:
            num += 1
            data[x][y] = num
            count += 1
            x -= 1
            y += 1

    elif i % 2 != 0:
        count = 0
        x, y = 0, i

        while count <= i:
            num += 1
            data[x][y] = num
            count += 1
            x += 1
            y -= 1

print(data[19][19])

Answer

761.0


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

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?