Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 正确的算法是什么?_C++_Algorithm - Fatal编程技术网

C++ 正确的算法是什么?

C++ 正确的算法是什么?,c++,algorithm,C++,Algorithm,所以,我在一次采访中被问到了这个问题:比如说在亚马逊,我得到了一个我必须转移的盒子集合(未知,我必须输出这个)。此外,我得到了一系列的数字对,其中每对数字代表传输的盒子的百分比和实际传输的盒子。比如说, 如果输入为 2 40 2 100 5 上面的意思是,2是输入的数量,40代表传输的箱子的百分比,2是对应于40的实际传输箱子。同样地,100表示转移的百分比,5表示转移的箱子。因此,我必须输出5作为最终答案。然而,这里的问题是%在小数点之前被截断。这意味着5.6将被视为5,5.7也将被视为5。

所以,我在一次采访中被问到了这个问题:比如说在亚马逊,我得到了一个我必须转移的盒子集合(未知,我必须输出这个)。此外,我得到了一系列的数字对,其中每对数字代表传输的盒子的百分比和实际传输的盒子。比如说,

如果输入为

2
40 2
100 5

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

我所做的是,我找到了第一对的1%,并试图计算出其余几对的盒子。然而,这并不是我被告知的正确方法。正确的方法是什么?谢谢

每个条目(p,k)给出一组可能的整数{n:100*k/(p+1)

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

< P>这里是一个通用的解决方案,作为C++方法:

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

“因此,我必须输出5作为最终答案”——为什么?您没有说明实际需求……因为5表示框的总数,这就是为什么。“402”表示答案在[2/0.41,2/0.4]中。等等,相交,瞧。这里的p和k是什么?@rohansingh,来自你例子的输入。我如何准确地找到所有集合之间的相交?这个值可能有很多。@rohansingh,只需跟踪上下限即可。