蓝桥杯软件类竞赛 │ 手算题攻略


蓝桥杯软件类竞赛 │ 手算题攻略
本文插图
现在的蓝桥杯省赛 , 每次比赛有10题 , 其中5个填空 , 5个编程 。
每次比赛都有“送分题” , 只需要几分钟就能做出来 。 特别是部分填空题 , 只需要填答案 , 不用提交代码 , 那么可以用包括编码在内的多种方法 。 编码一般比较慢 , 所以能不编码就不要编码 , 而是用推理和手算找到答案 。 这种不用编码的填空题称为“手算题” 。
竞赛的时间极为紧张 , 应选用最快的实现方式.下面给出4种小技巧:巧用编辑器、眼看手数、巧用Excel、巧用Python 。
01
巧用编辑器
01.
门牌制作
题目描述:1到2020的所有数字中 , 共有多少个2?
这确实是个送分题 , 编码也很简单:判断每个数字中有几个2 , 然后把所有数字中2的个数加起来 。 编码大概5分钟 。
但是有更简单的做法:先编码打印出1~2020这2020个数字 , 然后粘贴到一个编辑器(word、codeblocks都行)中 , 选替换功能 , 用某个字符替换‘2’ , 共替换624次 , 这就是答案 。 用时1分钟 。
先用代码打印数字(用python写代码更短):
# include<bits/stdc++.h>
usingnamespacestd;
intmain{
intk= 0;
for( inti= 1;i<= 2020;i++)
}
打印出2020个数字:
蓝桥杯软件类竞赛 │ 手算题攻略
本文插图
把数字贴回到codeblocks , 替换了624次 。
蓝桥杯软件类竞赛 │ 手算题攻略
本文插图
蓝桥杯软件类竞赛 │ 手算题攻略
本文插图
02.
2021年省赛新题"卡片"
今天(2021.4.18)省赛的A组第1题、B组第2题:
小蓝有很多数字卡片 , 每张卡片上都是数字 0 到 9 。 小蓝准备用这些卡片来拼一些数 , 他想从 1 开始拼出正整数 , 每拼一个 , 就保存起来 , 卡片就不能用来拼其它数了 。 小蓝想知道自己能从 1 拼到多少 。 例如 , 当小蓝有 30 张卡片 , 其中 0 到 9 各 3 张 , 则小蓝可以拼出 1 到 10 , 但是拼 11 时卡片 1 已经只有一张了 , 不够拼出 11 。 现在小蓝手里有 0 到 9 的卡片各 2021 张 , 共 20210 张 , 请问小蓝可以从 1拼到多少?提示:建议使用计算机编程解决问题 。
和上面的例子差不多的做法 。
先估计可能拼出3000多个数 。
编个小程序打印出1~3500 , 然后全部贴到word里面 , 看1用了多少次 , 2用了多少次…最后发现 , 1~3181 , 用了2021个1 , 等等 。 所以答案是3181 。
后面用python再做一次 。
02
眼看手数
有的填空题本身比较复杂 , 但是因为数据简单 , 此时用不着编码 , 直接用眼睛看 , 动手数 。