【每日一题】备战冲击蓝桥杯国赛——Python程序设计 | Day04 | 蛇形填数 | 真题代码解析

💖作者简介:大家好,我是车神哥,府学路18号的车神🥇
⚡About—>车神:从寝室实验室快3分钟,最慢3分半(那半分钟其实是等绿
📝个人主页:应无所住而生其心的博客_府学路18号车神_CSDN博客
🥇 官方认证:人工智能领域优质创作者
🎉点赞评论收藏 == 养成习惯一键三连)😋

⚡希望大家多多支持🤗~一起加油 😁


每天刷一道题,话不多说,先刷近两年的题吧,从2020的开始,如果有一起的可以加入我们!!!

一起来刷题,冲击国赛!!!


扫码 我的主页 网页左边 群二维码

加入方式:可以在下方的微信名片加我,然后拉你入群。(记得备注暗号我要拿国奖


2020年第十一届蓝桥杯赛题总览

2020年的题就是这些,类型分为两种,分别是结果填空和程序设计,我们每天刷一道题,省赛没问题!
在这里插入图片描述

蛇形填数(题目)

(本题总分:10分)


—>【问题描述】
在这里插入图片描述
—>【答案提交】

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


解析


通过阅读题干,本题——难度一般:⭐⭐⭐

考察类型:枚举

考察知识点:寻找规律


分析:

由于是填空题,我们只需要得出一个结果即可。结果为一个整数。可以用枚举简单易用,没毛病)。

首先,我们从题干可看出,蛇形填数的走势是怎么样的?如下
在这里插入图片描述
从中我们可看出,整个数字的排列方式是按上面。
我们思考一下?
按照行设置为m,列设置为n。第一个位置为(1,1),第二个为(1,2),第三个数(2,1),第四个数(3,1),第五个数(2,2)…,题目要求我们寻找20行20列的数是多少,应该不会有人想要现场去数吧(开玩笑的!~)。
设置计数器 res = 0,每当走一步的时候计数器就加一,我们按照行列的步长一步一步的走,总会走到中点的不是吗?当然我们还有更加便捷的方法,以后再介绍,现在讲解一中通俗易懂的吧,虽然慢,但是有效。下面列举我们的判断规则:
在这里插入图片描述


规则:终点为(20,20),(m,n)。从起点(0,0),走到(0,1)先是行向(横向)运动 n+1 ,然后列回归 1 , 再进行列方向(竖着)上运动 m+1 ;然后,在列向运动一步 m + 2,这时,再回到行最大的位置进行行向运动一步,再行运动一步;这样规律就出来了,然后我们编写了!~

简单总结就是:
** ij 坐标相加是奇数,←↓走势,**
** ij 坐标相加是偶数,→↑走势。**


代码

Python代码实现:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/2/26 20:17
# @Author  : 府学路18号车神
# @Email   :yurz_control@163.com
# @File    : Day04.py

import time

m, n, res = 0, 0, 0     # 设置行起点、列起点、计数器定位
end = 20    # 终点的行列位置

# 按照我们的规律,坐标相加的移动方位
"""
这里使用到了按位与操作,简单复习下:“&”符号是指按位与运算符,比如a&b,如果 a,b都为1结果为1,否则为0。相同为1,不同为0
"""
start_time = time.time()
while True:     # 死循环
    res += 1    # 计数开始
    if m == end-1 and n == end-1:
        break   # 这里是循环出口
    if (m + n) & 1:   # 如果 a,b都为1结果为1,否则为0;如:(0,1)、(1,0)奇数,下一步执行的操作是,往下↓和往斜下↓
        m += 1      # 行 m 加一,向下移动
        if n > 0:
            n -= 1  # 向左移动
    else:
        n += 1      # 否则,向右移动
        if m > 0:
            m -= 1  # 向上移动
end_time = time.time()
print("第20行20列的数是多少", res)
print("总共耗时:", end_time-start_time)

在这里插入图片描述

由此,我们可以快速的出结果为:761


今天开刷第 天,难度一般,欢迎大家加入,一起变强,一起自律,一起上国赛!!!

有不同解法的可以在下面留言哦!~

往期刷题路线:

刷题路线Detail
Day-01门牌制作
Day-02寻找2020
Day-03跑步锻炼

官方刷题练习系统:http://lx.lanqiao.cn/


❤坚持读Paper,坚持做笔记,坚持学习,坚持刷力扣LeetCode❤!!!
坚持刷题!!!冲击国赛
To Be No.1

⚡⚡


创作不易⚡,过路能❤关注收藏点个赞三连就最好不过了

ღ( ´・ᴗ・` )

  • 18
    点赞
  • 9
    收藏
  • 打赏
    打赏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:酷酷鲨 设计师:CSDN官方博客 返回首页
评论 19

打赏作者

府学路18号车神

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值