小球轻重的测量

张春  论坛元老 | 2024-9-22 17:31:44 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1584|帖子 1584|积分 4752

设有12个小球。其中11个小球的重量相同,称为好球;有一个小球的重量与11个好球的重量差异(或轻或重),称这个小球为坏球。试编写一个算法,用一个无砝码的天平称三次找出这个坏球,并确定其比好球轻还是重。
代码:
  1. #include<iostream>
  2. using namespace std;
  3. int a12(int a[])
  4. {
  5.         if(a[1]+a[2]+a[3]+a[4]==a[5]+a[6]+a[7]+a[8])
  6.         {
  7.                 if(a[1]+a[9]==a[10]+a[11])
  8.                 {
  9.                         if(a[1]>a[12]) return(-12);
  10.                         else
  11.                                 return(12);
  12.                 }
  13.                 else if(a[1]+a[9]>a[10]+a[11])
  14.                 {
  15.                         if(a[10]==a[11]) return(9);
  16.                         else if(a[10]==a[11]) return(9);
  17.                         else if(a[10]>a[11]) return (-11);
  18.                         else
  19.                                 return(-10);
  20.                 }
  21.                 else
  22.                 {
  23.                         if(a[10]==a[11]) return(-9);
  24.                         else if(a[10]>a[11]) return(10);
  25.                         else return(11);
  26.                 }
  27.         }
  28.         else if(a[1]+a[2]+a[3]+a[4]>a[5]+a[6]+a[7]+a[8])
  29.         {
  30.                 if(a[1]+a[2]+a[6]==a[3]+a[4]+a[5])
  31.                         if(a[1]==a[7]) return(-8);
  32.                         else
  33.                                 return(-7);
  34.                 else if(a[1]+a[2]+a[6]>a[3]+a[4]+a[5])
  35.                 {
  36.                         if(a[1]==a[2]) return(-5);
  37.                         else
  38.                                 if(a[1]>a[2]) return(1);
  39.                                
  40.                                 else
  41.                                         return(2);
  42.                 }
  43.                 else
  44.                 {
  45.                         if(a[3]==a[4]) return(-6);
  46.                                 else if(a[3]>a[4]) return(3);
  47.                                 else return(4);
  48.                 }
  49.         }
  50.         else
  51.         {
  52.                 if(a[1]+a[2]+a[6]==a[3]+a[4]+a[5])
  53.                         if(a[1]==a[7]) return(8);
  54.                         else
  55.                                 return(7);
  56.        
  57.                 else if(a[1]+a[2]+a[6]>a[3]+a[4]+a[5])
  58.                 {
  59.                         if(a[3]==a[4]) return(6);
  60.                         else
  61.                                 if(a[3]>a[4]) return(-4);
  62.                                
  63.                                 else
  64.                                         return(-3);
  65.                 }
  66.                 else
  67.                 {
  68.                         if(a[1]==a[2]) return(5);
  69.                                 else if(a[1]>a[2]) return(-2);
  70.                                 else return(-1);
  71.                 }
  72.         }
  73. }
  74. int main()
  75. {
  76.         int a[13]={0,5,5,5,5,5,5,5,4,5,5,5,5};
  77.         cout<<"k="<<a12(a)<<endl;
  78.         return 0;
  79. }
复制代码
运行

表示第八个小球轻


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表