选择最接近的离散值算法

时间:2016-08-19 04:10:30

标签: algorithm

我需要拥挤工作所需的算法。问题:用户给出一个整数作为输入。我们必须在一定范围内选择最接近的离散“增量”。假设0始终是可接受的返回值。我们还有最大值和最小值。

因此,如果min为-5,max为5,增量为5,则可接受的返回值为-5,0,5。如果输入超过max,我们只返回max,如果低于min,我们只返回分钟。例如,如果输入为“3”,则返回值为5,因为这是最接近3的增量。

以下代码是否涵盖所有案例?

int findClosestIncrement(int input)
{
   int min = getMin();
   int max = getMax();

   //delta is the "increment"
   int delta = getDelta();

   if(input <= min)
      return min;
   if(input >= max)
      return max;

   return Math.round( (float) input / float (delta) ) * delta;
}

同样,这是一个现实世界的问题。

0 个答案:

没有答案