砝码称重问题

上传人:桔**** 文档编号:489190473 上传时间:2023-05-13 格式:DOCX 页数:13 大小:43.68KB
返回 下载 相关 举报
砝码称重问题_第1页
第1页 / 共13页
砝码称重问题_第2页
第2页 / 共13页
砝码称重问题_第3页
第3页 / 共13页
砝码称重问题_第4页
第4页 / 共13页
砝码称重问题_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《砝码称重问题》由会员分享,可在线阅读,更多相关《砝码称重问题(13页珍藏版)》请在金锄头文库上搜索。

1、祛码称重问题问题:4个砝码,每个重量都是整数克,总重量为40克,放在天平上可以称出140克的 物体。求这4个砝码各多少克。1.问题分析设4个砝码的重量分别为w1、w2、w3、w4,则w1+w2+w3+w4=40,且w1,w2,w3,w4均 为正整数。假设不相等(假设w1vw2vw3vw4),故砝码中最大为34克。称重的天平有物体盘和砝码盘,称重时,若砝码只放在砝码盘,则物体质量=砝码盘砝码质量但若砝码盘和物体盘中都放置了砝码,则物体质量=砝码盘砝码质量-物体盘砝码质量从140,任意一个数,都应该能找到相应的砝码放置方法。砝码只有4个,且每次称重时, 这4个砝码只能出现0次或者1次,且砝码要么在

2、物体盘,要么在砝码盘,要解该问题, 应该转换思路。假设砝码在物体盘,认定其出现-1次假设砝码在砝码盘,认定其出现1次若该次称重,不需要该砝码,认定其出现0次设4个砝码在每次称重中出现的次数分别为x1,x2,x3,x4,则只有-1、0、1这三种取值如上分析,找到的砝码组合个数应该为40个(即140中的任意一个数都有对应的砝码组 合)2. C+版1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.c-sharp:nogutter view plaincopyprin t?* 4个砝码

3、,每个重量都是整数克,总重量为40克,放在天平上可以称出140克的*物体。求这4个砝码各多少克。* C+版/#include class CWeightint w1,w2,w3,w4;/砝码的重量/砝码总重量static const int TOTALWEIGHT=40;/4个砝码,w1+w2+w3+w4=40,且w1,w2,w3,w4均为整数,假设不相等(假设w1w2w3w4)故最大为 34static const int MAXWEIGHT=34;public:CWeight()w1=w2=w3=w4=0;CWeight()void Calculate();bool weight(int

4、w1,int w2,int w3,int w4);void output(int w1,int w2,int w3,int w4);void CWeight:Calculate()int w1,w2,w3,w4;for (w1=1;w1=MAXWEIGHT;w1+)for (w2=w1+1;w2=MAXWEIGHT;w2+)32. 33. for (w3=w2+1;w3=MAXWEIGHT;w3+)34. 35.36.for (w4=w3+1;w4=MAXWEIGHT;w4+)37.if(w1+w2+w3+w4=TOTALWEIGHT)38.39.if (weight(w1,w2,w3,w4)

5、40.41.printf(w1=%d w2=%d w3=%d w4=%d/n,w1,w2,w3,w4);42.output(w1,w2,w3,w4);43.44.45.46.47.48. 49. 50.50. /从140,不管哪个重量都要找到相应的砝码放置方法51. /w1,w2,w3,w4分别为4个砝码的重量52. bool CWeight:weight(int w1,int w2,int w3,int w4)53. 54. int w; /物体重量56.55. 砝码只有4个,且每次称重时,这4个砝码只能出现0次或者1次56. /出现时,砝码要么在物体盘,要么在砝码盘,要解该问题,转换思路5

6、7. 假设砝码在物体盘,认定其出现-1次58. 假设砝码在砝码盘,认定其出现1次59. /若该次称重,不需要该砝码,认定其出现0次60. /4个砝码在每次称重中出现的次数61. int x1,x2,x3,x4;/只有-1, 0,1 这三种取值64.62. int coun t=0;/找到的砝码组合个数67. /对140中的每个重量,都要找到相应的砝码组合68. /若有一个w(1=w=T0TALWEIGHT)没有找到相应的砝码组合,则表明该组砝码值不是所求69.for(w=1;w=T0TALWEIGHT;w+)70.71.for (x1=-1;x1=1;x1+)72.73.for (x2=-1;

7、x2=1;x2+)74.75.for (x3=-1;x3=1;x3+)76.77.for (x4=-1;x4=1;x4+)78.79.if (w1*x1+w2*x2+w3*x3+w4*x4=w)80.81.count+;82.83.找到该重量对应的砝码组合后,继续下一个重量84.x1=x2=x3=x4=2;85.86.87.88.89.90.91.92. /如果找到所有的1T0TALWEIGHT的砝码组合,则该组砝码值即为所求93. if (count=TOTALWEIGHT)94. return true;95. else96. return false;97. 98.98. /输出140中

8、每个重量对应的砝码组合(负数表示该砝码放在物体盘)100.101.102.103.104.105.106.107.108.109.110.111.112.113.114.115.116.117.118.119.120.121.122.123.124.125.126.127.128.129.130.131.132.133.134.void CWeight:output(int w1,int w2,int w3,int w4)int w; /物体重量int x1,x2,x3,x4;/只有-1, 0, 1 这三种取值/对1TOTALWEIGHT中的每个重量,都要找到相应的砝码组合for (w=1;w

9、=T0TALWEIGHT;w+)for (x1=-1;x1=1;x1+)for (x2=-1;x2=1;x2+)for (x3=-1;x3=1;x3+)for (x4=-1;x4=1;x4+)if (w1*x1+w2*x2+w3*x3+w4*x4=w)printf(w=%2d: ,w);if (x1!=0)printf(%d ,w1*x1);if (x2!=0)printf(%d ,w2*x2);if (x3!=0)printf(%d ,w3*x3);if (x4!=0)printf(%d ,w4*x4); printf(/n);/继续下一个重量x1=x2=x3=x4=2;135. 136.

10、137. 138.138. int main()139. 140. CWeight wei;141. wei.Calculate();143.142. return 0;145./*:个砝码,每个重量都是整数克,总重量为40克,放在天平 *物体。求这4个砝码各多少克。* C+版#includest dio.hclass CWeightint wl,w2,w3,w4;/砝码的重量/砝码总重量static const int TOTALWEIGHT=40;/4个砝码,wl+w2+w3+w4=40,且wl,w2,w3,w4均为整 static const int MAXWEIGHT=34;publi

11、c:QW八小+. 1.3. C# 版c-sharp:nogutter view plaincopyprin t?1.2. * 4个砝码,每个重量都是整数克,总重量为40克,放在天平上可以称出140克的3. *物体。求这4个砝码各多少克。4. * C#版5. */6. using System;using System.Text;namespace Weightclass Program/砝码总重量const int TOTALWEIGHT = 40;/4个砝码,w1+w2+w3+w4=40,且w1,w2,w3,w4均为整数,假设不相等(假设 w1w2w3w4)故最大为 34const int

12、MAXWEIGHT = 34;static void Main(string args)int w1, w2, w3, w4;for (w1 = 1; w1 = MAXWEIGHT; w1+)for (w2 = w1 + 1; w2 = MAXWEIGHT; w2+)for (w3 = w2 + 1; w3 = MAXWEIGHT; w3+)for (w4 = w3 + 1; w4 = MAXWEIGHT; w4+)if (w1+ w2 + w3 + w4 = TOTALWEIGHT)if (weight(w1, w2, w3, w4)8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.System.Console.WriteLine(w1=0 w2=1 w3=2 w4=3 , w1,w2, w3,w4);output(w1, w2, w3, w4);41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73./从140,不管哪个重量都要

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号