卖糖果

来自计算思维百科
跳转至: 导航搜索
卖糖果1.png

小新的爸爸开了个糖果店,周日的时候,爸爸让小新帮忙看店,自己有事出门。之前有个人说要订购一批糖果,只记得是不超过1500颗,但是具体数字一直没确定下来,周日来拿。不巧的是小新不会包装糖果,爸爸就把1500颗糖包装成了11包,这样顾客无论要买多少颗糖,都可以不用打开包装直接给他了。你知道爸爸是怎么做到的吗?

解决方案

小新的爸爸把糖果数量用二进制表示,从2的0次方开始累加到2的10次方可以表示1(0000000001)——1023(1111111111),再加上477的一包,就能组合成1500颗糖果。这样,小新的爸爸把糖果分成1、2、4、8、16、32、64、128、256、512、477共11份,每份包成一包。只要不超过1500颗糖,无论客人要多少颗,都可以成包买走。

运用的计算思维

把未知的糖果数量通过小包装数量的相加来解决顾客的需求问题,即是把大的问题通过分解将问题变换成子问题的集合,再由子问题的解反推得到大问题的解,这体现了计算思维中的规约思想。

参考文献

《逻辑思维训练500题(白金版)》 清华大学出版社