APP下载

蓝桥杯数学思维编程题——开关灯

2022-06-14陈新龙

电脑报 2022年11期
关键词:盏灯倍数列表

陈新龙

今天分享一道2020年蓝桥杯选拔赛的数学思维编程题目——开关灯。题目如下:

有十盏灯,从1到10按顺序依次编号,初始時全部灯处于开启状态。有十个人也从1到10依次编号。第一个人(1号)将灯全部关闭,第二个人(2号)将编号2的倍数的灯全部打开,第三个人(3号)将编号为3的倍数的灯做相反处理。即将打开的灯关闭,将关闭的灯打开。后面的人继续按3号的操作方法依次操作,把对应编号倍数的灯做相反处理。那么当第10个人操作之后,哪几盏灯是关闭的,哪几盏灯是开启的?

可能不少人读完题目之后还处于一头雾水的状态,没有任何思路,这里介绍个方法,我们可以利用Office的表格来梳理题目的流程。打开Excel软件,进行简单的布局操作,横向列为第1盏灯到第10盏灯,纵向行为第1个人到第10个人。根据题目的要求填空,灯开启的状态用数字1代替,关闭的状态用数字0代替。

依次按照规则填空,比如第二个人将2号、4号、6号、8号、10号位置的灯打开,第三个人将3、6、9位置的灯做相反的操作,将开着的灯关闭,将关闭的灯打开。以此类推,直至最后第十个人操作后,可以看到1号、4号、9号灯是关闭状态,其余的灯开着。

在Scratch中编程,建立一个保存灯状态的列表“十盏灯”,数字0代表灯的状态为关,数字1代表灯的状态为开。当绿旗被点击后,列表添加10个元素,全部为1。

每点击一次空格,小猫都会说:“第X个人来了”(X是人的序号),随后将列表中的元素按照题目要求进行处理,灯的编号与列表项目编号一致,数字0代表关,数字1代表开。连续点击10次后,列表中所有的元素值与表格演算一致。

通过循环重复执行将数字1添加入十盏灯列表中,并且增加两个变量“第几个人”和“倍数”。绿旗运行时,变量“第几个人”设置为1。当按下空格键时,变量“倍数”设置为1,由于第一个人开始需要进行开关灯的设置,这里我们可以添加一个判断语句,当满足条件第几个人×倍数不超过10时,将列表中的第几个人×倍数的项进行替换,比如第二个人需要将列表第2号、4号、6号、8号、10号位置进行数字替换(数字1替换成数字0,数字0替换成数字1)。

数字转换的两种方法,一是拿数字1-项数【1-1=0;1-0=1】;第二种是拿项数乘-1加1【1*-1+1=0;0*-1+1=1】。

另外在循环中不要忘记对变量“倍数”和变量“第几个人”进行累加。当第十个人进行开关灯后的结果为1号、4号、9号灯灭掉,其余灯为亮的。

通过简单的Scratch编程,我们将数学思维游戏成功解答出来了,恭喜聪明的你又掌握了新的知识点,陈老师在后期也会和大家分享更多有趣的数学编程游戏,一起期待吧。

猜你喜欢

盏灯倍数列表
扩列吧
倍数魔法
列表法解分式方程问题探索
如何表达常用的倍数
列表画树状图各有所长
关于“3与9的倍数特征”引起的思考
数学题
选择一盏灯
选择一盏灯
选择一盏灯