basic 编程题哪位大哥帮帮我

来源:百度知道 编辑:UC知道 时间:2024/05/29 02:41:18
1000只钉子,放在10个箱子里,但我可以从十个箱子里要一个《1000到1》之间的数,不论几个箱子结果加起来等于我要的数就行,请问结果是多少?

你的问题最后一句是不是可以这样理解?
如何分配每只箱子的储量,可以保证整箱整箱的拿可以凑齐他人难以整数的钉子?

应该这样分配:
至少的有一个箱子只放1只钉子,才能保证拿到1只
要拿到2只,可以由两个1只的箱子凑齐,也可以在另一个箱子放2只。考虑到只有10个箱子,所以得采用放2只的方案。
要拿到3只,就可以用前面那两箱子凑齐。
同理,第三箱放4只
第一、第三可以凑齐5只
第二、第三可以凑齐6只
第一、第二、第三可以凑7只
第四箱子放8只
……
也就是如下的数列
1、2、4、8、16、32、64、128、256
上面是前9只箱子的,第十箱放剩余的1000-256-128-64-32-16-8-4-2-1=489
前9箱可以凑齐1到512
513=489+24,24可以有前9项凑齐
514=489+25,……
……
1000=514+511,511是前九箱的全部。

非要编个程序的话:
Private Sub Command1_Click()
i = 1
s = 1
Do
Print i
i = i * 2
s = s + i
Loop Until s > 1000
Print 1000 - (s - i)
End Sub