有10箱产品,每箱有1000件,其中正品每件100克。其中有几箱是次品,每件次品比正品轻10克,问能否用秤只称一次,就找出哪几箱是次品?
#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克,问能否用秤只称一次,就找出哪几箱是次品?相关推荐
- 有10箱产品每箱有1000件,正品每件100克。其中的几箱是次品,次品每件比正品轻10克,问能否用秤只称一次,就找出哪几箱是次品。
有10箱产品每箱有1000件,正品每件100克.其中的几箱是次品,次品每件比正品轻10克,问能否用秤只称一次,就找出哪几箱是次品. #include <iostream>//#includ ...
- 12个球,其中有1个坏球和其他11个重量不一样,给你一个天平,称3次,找出不一样的那个
很常见的一道逻辑题,只使用已知条件,不借用其他外力. 设12个球分别是:A1,A2,A3,A4,B1,B2,B3,B4,C1,C2,C3,C4 第一次称:天平两侧分别是,左侧:A1,A2,A3,A4, ...
- 有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠.
有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作.现在我们用小老鼠做实验,要在1周内找出那桶毒酒,问最少需要多少老鼠. 很老的笔试题了. 答案是10只. 把十只老鼠看成二进制的位数,把酒桶 ...
- 现在有12枚硬币,其中有一枚有问题,不知道其是重了还是轻了,只有一个天平,可以测量三次,找出有问题的硬币。
现在有12枚硬币,其中有一枚有问题,不知道其是重了还是轻了,只有一个天平,可以测量三次,找出有问题的硬币. 关于这个题,看了一下网上的资料,感觉答案不全或是不够好,写了一个Xmind,可能看起来好理解 ...
- Google面试题原理解析 12个乒乓球其中有1个次品,用天平称重3次找出
1. 题目 "在12个小球里有一个次品,重量与其他11个球不同.用一个没有砝码的天平,称3次,保证找到那个次品,并且区分出次品是轻还是重呢?" 这个问题看似简单,做起来还真不容易. ...
- 假设你有8个球,其中一个略微重一些,但是找出这个球的唯一方法是将两个球放在天平上对比。最少要称多少次才能找出这个较重的球?
答:2 次 方法:从 8 个球中分别任取 3 个放在天平上对比 两边重量相等 则较重的球在剩下的两个球中,再在天平上进行对比就可以找出较重的球 两边重量不等 则待找的球在较重的一方中,在该方任取两个球 ...
- GAN 的内在漏洞,只看眼睛就能找出虚拟人脸?
本文转载自公众号"夕小瑶的卖萌屋",专业带逛互联网算法圈的神操作 ----->我是传送门 关注后,回复以下口令: 回复[789] :领取深度学习全栈手册(含NLP.CV海量综 ...
- 马走日问题,在5*5的棋盘中,马只能走日字。马从位置(0,0)处出发,把棋盘的每一格都走一次,且只走一次。找出所有路径。(C语言实现)
#include <stdio.h> #include <windows.h> #include <math.h>#pragma warning(disable:4 ...
- 算法——称重一次求出次品箱数
问题描述: 有10箱产品每箱有1000件,正品每件100克.其中的几箱是次品,次品每件比正品轻10克,问能否用秤只称一次,就找出哪几箱是次品. 算法解析 : 将10个箱子分别编号,1号 ...
最新文章
- 《LeetCode力扣练习》第53题 最大子数组和 Java
- linux中的nm命令
- 怎么做才能让浏览器看不到token_卫生间回填及防水怎么做才能后患无忧
- 列表-列表的排序和反转
- ArcGIS Server9.3+ArcGIS Desktop9.3破解安装(for microsoft .net)
- 轻松取得建表和索引的DDL语句
- Java开发人员的十大戒律
- CreateThread函数
- 你不出去卖我拿什么养你_玉树枝干“胳膊粗”,至少养了20年,给钱也不卖!...
- html怎么给没张图片添加单击事件,如何在Canvas上的图形/图像绑定事件监听的实现...
- python的ide怎么安装_python安装以及IDE的配置教程
- 计算机睡眠和休眠哪个更好,电脑睡眠和休眠哪个好?电脑休眠和睡眠的区别介绍...
- Jenkins | 搭建你第一个Jenkins应用
- CMAQ5.3安装笔记
- 微信公众号页面如何跳转至关注公众号页面
- 深度隐藏文件或文件夹原理与应用
- (C语言)实现基于PHP的某公司自来水收费管理系统
- python密码密文转换_浅论Python密文输入密码的方法
- 用python实现过滤存在大部分空白背景的图片
- 透过协议看PCIe ASPM L1.2