今天去面试,有一道面试题

三木哥 2009-11-02 11:20:14
如果有1000个苹果,有10个箱子,现要把1000个苹果放在10个箱子里面,放完后希望不管你向我要多少个苹果,我都可以整箱整箱的给你,问这个问题是否有解?
1, 2, 4, 8, 16, 32, 64, 128, 256, 499
1, 2, 4, 8, 16, 31, 63, 125, 250, 500
要求用VC实现?

不是很明白这道题,请大家分析一下,谢谢!
...全文
365 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
120680451 2009-12-03
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 lovetow 的回复:]
引用 25 楼 ll120680451 的回复:
引用 9 楼 huangxiaohu_coder 的回复:
网上看了下,下面这个逻辑比较容易理解也比较清晰。将10个箱子一字排开,并将其认为是10个2进制位,每位表示一个二进制数,而将10个箱子中,我都能整箱整箱的给你,相当于逻辑关系中的或,也就是加,所有只需要一个循环,让没一位的数字分别为1,则可以求出结果,结果为1,2,4,8,16,32,64,128,256,489,因为前9位加起来都为2的9次方减一了,所以最后只需要489就可以了

正解。我还有个比较笨的办法,也帖出来吧:
第一箱肯定为1个;
第二箱:如果取1个,可以给第一箱,如果取2个,就没办法了,所以第二箱为2个;
第三箱:如果取1个,可以给第一箱,如果取2个,可以给第二箱,如果取3个,可以给第一和第二箱,如果取4个就办法了,所在第三箱为4个;
第四箱:如果取第三箱个数以上的(因为第三箱个数以下的都能实现了),如果取5个,可以给第一箱和第三箱,如果取6个,可以给第二箱和第三箱,如果取7个,可以给第一箱、第二箱和第三箱,如果取8个,没办法,所以第四箱为8个;
......
......
依次推一下也行。

取四个的时候,可以取两箱两个的,没有必要再分4个出来装一箱的,所以这个办法不行啊。
就是按二进制的逻辑来比较好。
[/Quote]
呵呵,你是没明白这个题.
第一箱1个,第2箱2个.那取4个怎么办呢?依你说的,可以取两箱两个的,但我们只有第2箱是2个,那另一箱2个怎么办呢?
再次,依你这样说,那我们不是所有的都可以取了:用1个一箱和2个一箱的都可以组成.
你再想想,我说的办法是可以实现的,只是运算起来慢了点,还容易实现.
SuperLampard 2009-11-23
  • 打赏
  • 举报
回复
有点难度
YeBinYe 2009-11-11
  • 打赏
  • 举报
回复
顶!
yaozhiyong110 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 ll120680451 的回复:]
引用 9 楼 huangxiaohu_coder 的回复:
网上看了下,下面这个逻辑比较容易理解也比较清晰。将10个箱子一字排开,并将其认为是10个2进制位,每位表示一个二进制数,而将10个箱子中,我都能整箱整箱的给你,相当于逻辑关系中的或,也就是加,所有只需要一个循环,让没一位的数字分别为1,则可以求出结果,结果为1,2,4,8,16,32,64,128,256,489,因为前9位加起来都为2的9次方减一了,所以最后只需要489就可以了

正解。我还有个比较笨的办法,也帖出来吧:
第一箱肯定为1个;
第二箱:如果取1个,可以给第一箱,如果取2个,就没办法了,所以第二箱为2个;
第三箱:如果取1个,可以给第一箱,如果取2个,可以给第二箱,如果取3个,可以给第一和第二箱,如果取4个就办法了,所在第三箱为4个;
第四箱:如果取第三箱个数以上的(因为第三箱个数以下的都能实现了),如果取5个,可以给第一箱和第三箱,如果取6个,可以给第二箱和第三箱,如果取7个,可以给第一箱、第二箱和第三箱,如果取8个,没办法,所以第四箱为8个;
......
......
依次推一下也行。
[/Quote]

你的够猛!
i_goon 2009-11-11
  • 打赏
  • 举报
回复
不知道,有点难度。
vivvan 2009-11-11
  • 打赏
  • 举报
回复
把10个箱子当成十位,就OK了。。。
ezhuyin 2009-11-11
  • 打赏
  • 举报
回复
将1000化为2进制数,是1111101000,刚好是10位,也就是可以用10个箱子表示,每一个箱子表示1位。
其中第一个到第9个箱子表示了1 2 4 8 16 32 64 128 256几个数,加起来可以表示1到511,剩下的489个放在最后一个箱子里,就解决问题了。但是不知道是否是唯一解。
lovetow 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 ll120680451 的回复:]
引用 9 楼 huangxiaohu_coder 的回复:
网上看了下,下面这个逻辑比较容易理解也比较清晰。将10个箱子一字排开,并将其认为是10个2进制位,每位表示一个二进制数,而将10个箱子中,我都能整箱整箱的给你,相当于逻辑关系中的或,也就是加,所有只需要一个循环,让没一位的数字分别为1,则可以求出结果,结果为1,2,4,8,16,32,64,128,256,489,因为前9位加起来都为2的9次方减一了,所以最后只需要489就可以了

正解。我还有个比较笨的办法,也帖出来吧:
第一箱肯定为1个;
第二箱:如果取1个,可以给第一箱,如果取2个,就没办法了,所以第二箱为2个;
第三箱:如果取1个,可以给第一箱,如果取2个,可以给第二箱,如果取3个,可以给第一和第二箱,如果取4个就办法了,所在第三箱为4个;
第四箱:如果取第三箱个数以上的(因为第三箱个数以下的都能实现了),如果取5个,可以给第一箱和第三箱,如果取6个,可以给第二箱和第三箱,如果取7个,可以给第一箱、第二箱和第三箱,如果取8个,没办法,所以第四箱为8个;
......
......
依次推一下也行。
[/Quote]
取四个的时候,可以取两箱两个的,没有必要再分4个出来装一箱的,所以这个办法不行啊。
就是按二进制的逻辑来比较好。
awperpvip 2009-11-11
  • 打赏
  • 举报
回复
up
jiandiao 2009-11-11
  • 打赏
  • 举报
回复
顶,好题大家做,你好我好,大家好,好好。。。。。。
120680451 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 huangxiaohu_coder 的回复:]
网上看了下,下面这个逻辑比较容易理解也比较清晰。将10个箱子一字排开,并将其认为是10个2进制位,每位表示一个二进制数,而将10个箱子中,我都能整箱整箱的给你,相当于逻辑关系中的或,也就是加,所有只需要一个循环,让没一位的数字分别为1,则可以求出结果,结果为1,2,4,8,16,32,64,128,256,489,因为前9位加起来都为2的9次方减一了,所以最后只需要489就可以了
[/Quote]
正解。我还有个比较笨的办法,也帖出来吧:
第一箱肯定为1个;
第二箱:如果取1个,可以给第一箱,如果取2个,就没办法了,所以第二箱为2个;
第三箱:如果取1个,可以给第一箱,如果取2个,可以给第二箱,如果取3个,可以给第一和第二箱,如果取4个就办法了,所在第三箱为4个;
第四箱:如果取第三箱个数以上的(因为第三箱个数以下的都能实现了),如果取5个,可以给第一箱和第三箱,如果取6个,可以给第二箱和第三箱,如果取7个,可以给第一箱、第二箱和第三箱,如果取8个,没办法,所以第四箱为8个;
......
......
依次推一下也行。
p17939845 2009-11-10
  • 打赏
  • 举报
回复
1, 2, 4, 8, 16, 32, 64, 128, 256, 512
把每个箱子理解成一个二进制位就是了,10位二进制数的描述范围是0~1023
大于1000,当然可以的。
ArcCreator 2009-11-10
  • 打赏
  • 举报
回复
19楼说的很对!
ArcCreator 2009-11-10
  • 打赏
  • 举报
回复
如果有1000个苹果,按照第1个箱子1个
第2个...2
3...4
4...8

一共需要1024个苹果?
ahao 2009-11-04
  • 打赏
  • 举报
回复
按2的次方放
muyi740330 2009-11-04
  • 打赏
  • 举报
回复
按1, 2, 4, 8, 16, 32, 64, 128, 256, 499排箱子
if 需要的苹果数==499
输出:499箱子
else if 需要的苹果数<499
输出:苹果数的二进制位箱子
else
输出:苹果数的二进制位箱子+499箱子
cocat 2009-11-04
  • 打赏
  • 举报
回复
题目肯定没有错
ljingjie 2009-11-04
  • 打赏
  • 举报
回复
19楼说的很清晰,很对!
havedown 2009-11-03
  • 打赏
  • 举报
回复
int box[10]={0};
bool flag[1000]={0};
int boxindex=0;
bool bSuccess=true;
for(int i=1;i<1001;i++)
{
if(!flag[i])
{
if(boxindex<10)
{
box[boxindex]=i;
setflag[boxindex];
++boxindex;
}
}
}

setflag 里从box数组取 1 ~ boxindex + 1 个组合的和值,并设flag[合值]=true

很笨的办法,因为每次都要从box数组取 1 ~ boxindex + 1 个组合的和值,效率很低。

等高手的精妙办法。
coolcoffee4051982 2009-11-03
  • 打赏
  • 举报
回复
题目很清楚,九楼正解
加载更多回复(15)
昨日,11.19,最新整理了,第61-80题,现在公布上传。 另加上之前公布的第1-60 题,在此做一次汇总上传,以飨各位。 可以这么说,绝大部分的面试,都是这100 道题系列的翻版, 此微软等公司数据结构+算法面试100 题系列,是极具代表性的经典面试。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 题[第21-40 题答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 题[前20 题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 题[前25 题] http://download.csdn.net/source/2796735 题目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 题[1-40 题] http://download.csdn.net/source/2778852 5.[第1 题-60 题汇总]微软等数据结构+算法面试100 题 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何题目或任何答案,有任何问题,欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何题目或资源享有版权。转载以上公布的任何一题, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
精选微软等数据结构+算法面试100题答案修正V0.2版本 -------------------- 此份答案是针对,前期已公布的最初的那份答案的,初步校正与修正。 http://download.csdn.net/source/2796735(V0.1版) 相比第一份V0.1版答案,此份答案V0.2版更加准确,亦修正了不少题目的答案。 此份20题的答案,思路更加清晰易懂,简介明了。 请享用。July、2010/11/06。 其它资源,下载地址: 1.[最新答案V0.3版]微软等数据结构+算法面试100题[第21-40题答案] http://download.csdn.net/source/2832862 2.[第1题-60题汇总]微软等数据结构+算法面试100题 http://download.csdn.net/source/2826690 3.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 4.[答案V0.1版]精选微软数据结构+算法面试100题[前25题] http://download.csdn.net/source/2796735 5.[第二部分]精选微软等公司结构+算法面试100题[前41-60题]: http://download.csdn.net/source/2811703 6.[第一部分]精选微软等公司数据结构+算法经典面试100题[1-40题] http://download.csdn.net/source/2778852 更多资源,下载地址: http://v_july_v.download.csdn.net/ ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
火爆出炉:微软等数据结构+算法面试100题首次完整亮相 ---100题V0.1版最终完成 作者:July 2010年12月6日 微软等100题系列V0.1版终于结束了。 从2010年10月11日当天最初发表前40题以来,直至此刻,整理这100题,已有近2个月。 2个月,因为要整理这100题,很多很多其它的事都被我强迫性的搁置一旁, 如今,要好好专心去做因这100题而被耽误的、其它的事了。 这微软等数据结构+算法面试100题系列(题目+答案),到底现在、或此刻、或未来, 对初学者有多大的意义,在此,我就不给予评说了。 由他们自己来认定。所谓,公道自在人心,我相信这句话。 任何人,对以下任何资料、题目、或答案,有任何问题,欢迎联系我。 作者邮箱: zhoulei0907@yahoo.cn 作者声明: 转载或引用以下任何资料、或题目,请注明作者本人July及出处。 向您的厚道致敬,谢谢。 好了,请享受这完完整整的100题吧,这可是首次完整亮相哦。:D。 ............ ............ 答案系列: 5.[最新答案V0.3版]微软等数据结构+算法面试100题[第21-40题答案] http://download.csdn.net/source/2832862 6.[答案V0.2版]精选微软数据结构+算法面试100题[前20题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 7.[答案V0.1版]精选微软数据结构+算法面试100题[前25题] http://download.csdn.net/source/2796735 剩下的第41-100题答案,正在整理中。预计明年整理公布。 请各位,细心的等待。谢谢。 更多资源,下载地址: http://v_july_v.download.csdn.net/ ================================== 更多详情,请参见本人博客: My Blog: http://blog.csdn.net/v_JULY_v --------------------------------------------------------------------------------------- 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧