————— 第二天 —————
完整题目如下:
我们有1000个苹果,要用10个箱子来进行分装,每个箱子所装的苹果数量不限。
但是这里有一个特殊的要求:当我们想要任意数量(从1到1000)苹果的时候,只需要给出几个整箱就行了。
比如,我们想要123个苹果。那么给出第1个、第3个、第5个箱子,里面的苹果数量加起来刚好是123。
如何在这10个箱子里分配苹果,才能满足以上的要求呢?
————————————
很明显,每个箱子都具有两种状态,“不使用”和“使用”,这就好像是二进制当中的0和1。而前三个箱子的苹果数量分别是1、2、4,这正好对应了二进制前三位的大小:
题目中一共有10个箱子,那我们就可以用这些箱子表示10位二进制数。
用10位二进制可以表示的最大数字是1111111111B,也就是1023。因此,用10个箱子凑出从1到1000数量的苹果,是绰绰有余的。