什么是党组会:一个经典的计算机程序问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/03/28 20:54:12
一个40千克的的物体碎成了四块,这四块的重量可以用来称出1--40千克所有的整数重量.问着四小块的重量分别是多少?有谁能够帮我写出着到题的程序.非常感谢!
知道此题的答案,需要的是计算这题的算法或原程序!

讲个笨办法:
首先必然有一块1磅的,不然无法称出39磅的。
所以先分成两块: 1, 39
38 可以这样称 39-1
37 怎么称呢,两块不够,必须分为三块,有下面几种情况:
38-1,需要划分为:1,1,38
37, 。。。。。。1,2,37
36+1 。。。。。。1,3,36
35+2,。。。。。。1,2,35,2
显然35以下不用考虑了。
36以上我们选择最能够拉开差距的方式,优先选择36,1,3的划分方式。
为什么选差距大的?这是直觉,先不要问我理由。:)
然后,可以称出下面的数字:
35=36-1
34=36+1-3
33=36-3
32=36-1-3
到31便不能再称了,需要划分出第四块了。
31=30+1;28+3;27+1+3;
还是选最大的差距的划分 1,3,9,27
31=27+1+3
30=27+3
29=27+3-1
28=27+1
27=27
26=27-1
25=27+1-3
24=27-3
23=27-1-3
22=27+1+3-9
21=27+3-9
20=27+3-9-1
19=27+1-9
18=27-9
17=27-9-1
16=27-9-3+1
.....
实在懒得写了,反正答案就是这个了。