分苹果问题

来源:互联网 发布:围棋摆谱软件 编辑:程序博客网 时间:2024/04/28 05:37
 
题目:有600个苹果10个盒子,要求把600个苹果分装到10个盒子里。如果有人来买苹果随便说出一个数,直接拿这些盒子组装一下就可以给他不用拆分盒子。请问这10个盒子应该分别装多少苹果?— — — — — — — — — — 另外用下面的程序实现出来(Java)
public void countApple() {
    int[] box = new int[10];
    int count = 600;
    //  这里填充代码;


}
分析:2^9=512,第10个放600-512,给每一个盒子依次编一个号 .
把来人给的数目转为二进制数,比如来人说要100个苹果,你就把100转为二进制:1100100取编号为3,6,7三个盒子的苹果给他就行了。
解答:因为是600个苹果,有10个盒子,按照10个2进制数来说,只能2进制的方法给前9个装上,第10个就是 1 + 2 +4+8+16+32+64+128 + 256 = 511 ,所以最后1 个是600-511 = 89个。对于客户要多少有一个条件,是不是大于511个,如果不大于511,可以用二进制填空的方式,511的二进制是111111111,而如果客户要的是大于511,则先将客户要的数目-89再组成二进制,然后再加上第10个的89个。。。