zoukankan      html  css  js  c++  java
  • 《Cracking the Coding Interview》——第6章:智力题——题目1

    2014-03-19 06:40

    题目:有20瓶药,其中19瓶装的都是1.0克的药片,只有1瓶装了1.1克的药。给你一个能称出具体克数的电子秤,只允许你称一次,怎么找出那瓶不一样的?

    解法:如果药片管够,从每个瓶子里取出数量各不相同的药片,根据质量的总和减去“期望的”质量总和,就知道哪瓶有问题了。

    代码:

     1 // 6.1 There are 20 bottles of pills, all of which have pills of 1g, except one with 1.1g.
     2 // Given a balance that can provides exact measurement, can you devise a method to find out the special bottle with just one try?
     3 // Answer:
     4 //    If you pick n[i] pills from bottle i, the total weight should be sigma(n[i] * 1.0).
     5 //    But there is one with 1.1g pills, that would cause a little deviation to the sum.
     6 //    For example, if we pick i pills from bottle i, the sum should be (20 + 1) * 20 / 2 = 210.
     7 //    The real weight w should be greater than 210, (w - 210) / (1.1 - 1.0) will be the number.
     8 int main()
     9 {
    10     return 0;
    11 }
  • 相关阅读:
    10/28总结
    10/27总结
    10/26总结
    10/25总结
    10/24总结
    毕业设计第二周整理规划
    毕业设计第一周第五天完成情况汇总
    毕业设计第一周第四天完成情况汇总
    毕业设计第一周第三天完成情况汇总
    毕业设计第一周第二天完成情况汇总
  • 原文地址:https://www.cnblogs.com/zhuli19901106/p/3610496.html
Copyright © 2011-2022 走看看