算法:需要多少个不可分割的单位来掩盖一个随机数?

时间:2014-04-01 18:38:49

标签: c# algorithm

如何找到需要多少不可分割的1,000单位来掩盖随机数?

例如,对于随机数5,123,我需要6 x 1,000来掩盖它,所以:MyAlgorithm(5123, 1000) = 6

Edit1:我很抱歉,尽管我努力将我的问题表达成一个有意义的描述我的阅读障碍症接管了,我希望这个编辑让它更容易理解。

3 个答案:

答案 0 :(得分:3)

好吧,如果我理解你的问题,听起来你可以简单地将参数转换为小数,除以,然后使用Math.Ceiling

int output = (int)Math.Ceiling((decimal)5123 / (decimal)1000); // 6

或者,您可以避免转换并完全依赖整数除法和% operator(模数),如下所示:

int output = (5123 / 1000) + (5123 % 1000 == 0 ? 0 : 1);

如果你想在一个方法中使用它,只需将它包装起来:

static int MyAlgorithm(int a, int b)
{
    return (a / b) + (a % b == 0 ? 0 : 1);
}

答案 1 :(得分:2)

如果我理解你的话,这真的只是一个单行:

public static int MyAlgorithm(int input, int units)
{
   return input%units == 0 ? input/units : input/units + 1;
}

唯一的情况是,当没有余数时,input/units + 1的结果就不是

答案 2 :(得分:-1)

public int MyAlgorithm(int x, int y)
{ 
     int result = x / y;
     return (result < 0) ? (result - 1): (result + 1);
}