关于火柴棒数字游戏的方案设计思考

这是学习笔记的第 2468篇文章

a1e43a08028eea3097f6c585b823d0e9.gif

  同样,这是一个耽搁了数月之久的事情,关于火柴棒数字游戏,在奥数题中经常能刷到,还是蛮考验思维的。 孩子很喜欢这种题目,我也觉得有意思,所以就花了一些时间琢磨了下。

比如 拿走一根火柴棒,使得下面的等式成立

a52031c390063580bf2a9d1a5c575328.png

或者是我在去年发的一道题目,一道移动火柴的题目,要不要试一下

bb2d99079016ea33ed304a07a57895ef.png

这种题目难就难在,可以同时有多种解法

带着好奇心,我做了下分析,怎么能够写程序生成这样的题目,我没有着急开始写代码,而是做了一些分析。 

比如数字所对应的火柴棒数量差异还是很大的。 

c348555f4a26cc72b0b454d693c3ad66.png

按照火柴棒数量,基本上能够锁定几类常见的题目:

1)挪动一根火柴棒(平移)

2)添加一根火柴棒(添加)

3)减少一根火柴棒(减少)

接下来就是有点烧脑的重点了, 我整理了下。

平移有五种情况,大体能够覆盖常见的场景:

1)第一种是当前的数字在火柴棒不变的情况下自我调整,火柴棒总数不变

        2<->3, 5<->3, 0<->6, 0<->9,6<->9

比如2<->3,意思是2可以平移转换成3,3也可以平移转换成2,类似于这样,其他的描述方式是相似的,就不一一贴图了。

e9a9707e1159e0e08a760dc884f7960d.png

2)第二种情况是一个数字增加一根火柴棒,同时另外一个数字减少一根火柴棒,火柴棒总数不变

        1->7,3->9,5->6,5->9,0->8,6->8,9->8,0->10

3)第三种情况是一个数字减少一根火柴棒,同时另外一个数字增加一根火柴棒,火柴棒总数不变

        7->1,9->3,8->0,8->6,8->9,10->0

4)第四种情况是将 - 调整为 +,另外一个数字减少一根火柴,火柴棒总数不变

        7->1,9->3,8->0,8->6,8->9

5)第五种情况是将+ 调整为 -,另外一个数字增加一根火柴,火柴棒总数不变

        1->7,3->9,5->6,5->9,0->8,6->8,9->8    

添加一根火柴

1)第一种情况是一个数字增加一根火柴棒,同时另外一个数字减少一根火柴棒,火柴棒总数不变

        1->7,3->9,5->6,5->9,0->8,6->8,9->8

2)第二种是将 - 调整为 +,使得等式成立

减少一根火柴

1)第一种情况是一个数字减少一根火柴棒,同时另外一个数字增加一根火柴棒,火柴棒总数不变

        7->1,9->3,8->0,8->6,8->9

2)第二种情况是将 + 调整为 -,使得等式成立

整体思路

1)先输出正常的结果

2)在正常的结果基础上调整,输出修改过的结果

例如移动一根火柴的场景,先根据等式的数字来判断五种场景中,根据数字哪种更合适,如果都不合适,则调整符号

以一个看起来极度简单的算式为例

0+9=9

很快就能衍生出十多个个算式:

比如平移一根火柴就有这么多:

9+9=9,    6+9=9,    0+0=9,   0+6=9,    0+9=6,    0+9=0

8+3=9,10+3=9,0+3=8,0+5=8,0+8=5

0-8=9,0-9=8,10-9=9

后续完善代码之后可以把代码附上,先缓缓。

各大平台都可以找到我

  • 微信公众号:杨建荣的学习笔记

  • Github:@jeanron100

  • CSDN:@jeanron100

  • 知乎:@jeanron100

  • 头条号:@杨建荣的学习笔记

  • 网易号:@杨建荣的数据库笔记

  • 大鱼号:@杨建荣的数据库笔记

  • 腾讯云+社区:@杨建荣的学习笔记

热文:

新数据库时代,DBA 发展之路该如何选择

我们为什么在MySQL中几乎不使用分区表

《大江大河2》最触动我的一段经典对话

如何优化MySQL千万级大表,我写了6000字的解读

一道经典的MySQL面试题,答案出现三次反转

换个角度看人生

拉里·佩奇(Larry Page)的伟大归来

美女主持直播,被突发意外打断!湾区网友却高喊: 我懂!超甜

38e9006c6819fff23e8884571adfab2b.gif

QQ群号:763628645

QQ群二维码如下, 添加请注明:姓名+地区+职位,否则不予通过

在看,让更多人看到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jeanron100

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值