这个的正确算法是什么?

时间:2015-10-18 05:21:30

标签: c++ algorithm

所以,我在接受采访时被问到这个问题:让我们在亚马逊上说,我收到了一些盒子,我必须转移(未知,我必须输出)。此外,我获得了一系列数字,其中每对数字代表转移的盒子的百分比和转移的实际盒子。例如,

如果输入,

2
40 2
100 5

上述方法是,2表示输入的数量,40表示转移的箱子的百分比,2表示转移的实际箱子对应40个。同样,100表示​​%,5表示转移。因此,我必须输出5作为我的最终答案。但是,这里的问题是%' s在小数点之前被截断。这意味着5.6将被视为5,5.7也将被视为5.因此,我必须根据给定的输入数据输出总框(如果可能,否则为0)。

我所做的是我发现第一对的等效值为1%,并尝试计算其余对的方框。然而,正如我被告知的那样,这并不是正确的方法。对此有什么正确的解决方法?谢谢!

2 个答案:

答案 0 :(得分:2)

每个条目(p,k)给出一组可能的整数{n:100 * k /(p + 1)< n≤100* k / p}。所有这些集合的交集就是答案。

例外情况是其中一个百分比为100,在这种情况下,框的数量就是答案,因为100不能是截断的结果。

答案 1 :(得分:-2)

以下是作为C ++方法的通用解决方案:

int compute(int input) {
  if (input == 40) {
    return 2;
  }
  else if (input == 100) {
    return 5;
  }
  return -1;
}