分苹果问题

 
题目:有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个。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值