关于”600个苹果分十个篮子的装“问题的分析

16:30:06  2009-10-06 JHorn H

问题的描述:

 

问题: 现在有600个苹果以及10个盒子,把600个苹果放到10个盒子里。

            这个时候有个人来买x苹果,x为随便说出一个数,
            要求直接拿这10盒子中的几个组装,不能拆分盒子,就可以给他。请问这10个盒子应该分别装多少苹果?
            用程序实现出来

程序的输出:
                1. 输出1 - 10 号盘子个放几个苹果。
                2. 这个 人来买x个苹果时,还要输出哪几个盘子的组合(编号 1 -- 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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值