16:30:06 2009-10-06 JHorn H
问题的描述:
问题: 现在有600个苹果以及10个盒子,把600个苹果放到10个盒子里。
我的思想就是将 10个装苹果的篮子看成10位的二进值数值
1111 1111 11
这十个二进制位 表示最大数值 1023
1023超出了题目的需求,那就使用前9个位
前九个位表示的最大数值是 511,而题目给出的数值为 600,
那么600 - 511 = 89; 所以用最后一个篮子放89个苹果;
其余的9位表示1 -- 511 所有数:
二进制 十进制
1 000 000 00 ----- 256
100 000 00 ------- 128;
10 000 00 ------- 64;
1 000 00 ------- 32;
100 00 ------- 16;
10 00 ------ 8;
1 00 ------ 4;
10 ------- 2;
1 ------- 1
所以 1 --- 9 个篮子按照上面的十进制放,这样的组合可以满足 1 ----- 511多所有数值,在加上第10号框子中的89 就可以表示 1 -- 600 之间的所有数值。
算法如下:
JHorn Han

通过将10个盒子视作二进制位的方式,解决了如何放置600个苹果以便能够组合出售任意数量的问题。该算法确保了每个盒子的苹果数量能够覆盖从1到600的所有数值。
568

被折叠的 条评论
为什么被折叠?



