#include <iostream>
#include <vector>
//#include <string>
using namespace std;int main()
{int n;cout<<"input the number of boxes:";cin>>n;//标准总重量long w1 = 0;long w2 = 0;int t = 1;for (int i = 0;i<n;++i){w1 += t;cout<<i+1<<" boxes take "<<t<<" units."<<endl;t *= 2;}w1 = w1 *100;cout<<"normal weight:"<<w1<<endl;cout<<"Input reality weight:";cin>>w2;w1 -= w2;w1 /= 10;while (w1>0){int k = 0;int t=1;//计算最接近当前重量w1的2^k,则k+1号箱为次品箱while(w1-t>=0){t *= 2;++k;}w1 -= t/2;cout<<k<<" box is bad."<<endl;}return 0;
}

运行结果:

解法二:通过C语言的库函数来求最接近当前重量w1的

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;int main()
{
int n;
cout<<"input the number of boxes:";
cin>>n;
//标准总重量
long w1 = 0;
long w2 = 0;
int t = 1;
for (int i = 0;i<n;++i)
{
w1 += t;
cout<<i+1<<" boxes take "<<t<<" units."<<endl;
t *= 2;
}
w1 = w1 *100;
cout<<"normal weight:"<<w1<<endl;
cout<<"Input reality weight:";
cin>>w2;
w1 -= w2;
w1 /= 10;
while (w1>0)
{
int k = 0;
int t=1;
//计算最接近当前重量w1的2^k,则k+1号箱为次品箱
k = log((double)w1)/log((double)2);
cout<<k+1<<" box is bad."<<endl;
w1 -= pow((double)2,k);
}
return 0;
}

有10箱产品,每箱有1000件,其中正品每件100克。其中有几箱是次品,每件次品比正品轻10克,问能否用秤只称一次,就找出哪几箱是次品?相关推荐

  1. 有10箱产品每箱有1000件,正品每件100克。其中的几箱是次品,次品每件比正品轻10克,问能否用秤只称一次,就找出哪几箱是次品。

    有10箱产品每箱有1000件,正品每件100克.其中的几箱是次品,次品每件比正品轻10克,问能否用秤只称一次,就找出哪几箱是次品. #include <iostream>//#includ ...

  2. 12个球,其中有1个坏球和其他11个重量不一样,给你一个天平,称3次,找出不一样的那个

    很常见的一道逻辑题,只使用已知条件,不借用其他外力. 设12个球分别是:A1,A2,A3,A4,B1,B2,B3,B4,C1,C2,C3,C4 第一次称:天平两侧分别是,左侧:A1,A2,A3,A4, ...

  3. 有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠.

    有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠. 很老的笔试题了. 答案是10只. 把十只老鼠看成二进制的位数,把酒桶 ...

  4. 现在有12枚硬币,其中有一枚有问题,不知道其是重了还是轻了,只有一个天平,可以测量三次,找出有问题的硬币。

    现在有12枚硬币,其中有一枚有问题,不知道其是重了还是轻了,只有一个天平,可以测量三次,找出有问题的硬币. 关于这个题,看了一下网上的资料,感觉答案不全或是不够好,写了一个Xmind,可能看起来好理解 ...

  5. Google面试题原理解析 12个乒乓球其中有1个次品,用天平称重3次找出

    1. 题目 "在12个小球里有一个次品,重量与其他11个球不同.用一个没有砝码的天平,称3次,保证找到那个次品,并且区分出次品是轻还是重呢?" 这个问题看似简单,做起来还真不容易. ...

  6. 假设你有8个球,其中一个略微重一些,但是找出这个球的唯一方法是将两个球放在天平上对比。最少要称多少次才能找出这个较重的球?

    答:2 次 方法:从 8 个球中分别任取 3 个放在天平上对比 两边重量相等 则较重的球在剩下的两个球中,再在天平上进行对比就可以找出较重的球 两边重量不等 则待找的球在较重的一方中,在该方任取两个球 ...

  7. GAN 的内在漏洞,只看眼睛就能找出虚拟人脸?

    本文转载自公众号"夕小瑶的卖萌屋",专业带逛互联网算法圈的神操作 ----->我是传送门 关注后,回复以下口令: 回复[789] :领取深度学习全栈手册(含NLP.CV海量综 ...

  8. 马走日问题,在5*5的棋盘中,马只能走日字。马从位置(0,0)处出发,把棋盘的每一格都走一次,且只走一次。找出所有路径。(C语言实现)

    #include <stdio.h> #include <windows.h> #include <math.h>#pragma warning(disable:4 ...

  9. 算法——称重一次求出次品箱数

    问题描述: 有10箱产品每箱有1000件,正品每件100克.其中的几箱是次品,次品每件比正品轻10克,问能否用秤只称一次,就找出哪几箱是次品. 算法解析 :         将10个箱子分别编号,1号 ...

最新文章

  1. 《LeetCode力扣练习》第53题 最大子数组和 Java
  2. linux中的nm命令
  3. 怎么做才能让浏览器看不到token_卫生间回填及防水怎么做才能后患无忧
  4. 列表-列表的排序和反转
  5. ArcGIS Server9.3+ArcGIS Desktop9.3破解安装(for microsoft .net)
  6. 轻松取得建表和索引的DDL语句
  7. Java开发人员的十大戒律
  8. CreateThread函数
  9. 你不出去卖我拿什么养你_玉树枝干“胳膊粗”,至少养了20年,给钱也不卖!...
  10. html怎么给没张图片添加单击事件,如何在Canvas上的图形/图像绑定事件监听的实现...
  11. python的ide怎么安装_python安装以及IDE的配置教程
  12. 计算机睡眠和休眠哪个更好,电脑睡眠和休眠哪个好?电脑休眠和睡眠的区别介绍...
  13. Jenkins | 搭建你第一个Jenkins应用
  14. CMAQ5.3安装笔记
  15. 微信公众号页面如何跳转至关注公众号页面
  16. 深度隐藏文件或文件夹原理与应用
  17. (C语言)实现基于PHP的某公司自来水收费管理系统
  18. python密码密文转换_浅论Python密文输入密码的方法
  19. 用python实现过滤存在大部分空白背景的图片
  20. 透过协议看PCIe ASPM L1.2

热门文章

  1. Eigen库下使用MKL加速
  2. Python入门(环境搭建)
  3. web前端进阶之路;web前端不能只做普通程序员;web前端应该向前端架构师前进
  4. python总结之学习笔记
  5. 数据传输加解密应用层的加解密
  6. 对比一下国内三大云供应商阿里云、腾讯云、华为云、性价比怎么样
  7. 拯救剧荒, 七部职场进阶的电影了解一下
  8. linux下查看目标文件.a中函数符号名称
  9. 第九章:广度优先和深度优先搜索的一些总结
  10. 东南亚陶瓷等非金属矿产原料分布