均匀可分的天花板数

时间:2011-11-14 20:58:09

标签: c# math decimal

我需要一些简单的数学计算方法以及在c#中执行它们的最有效方法。

10 / 4 = 2.5

如何确定总和是否为十进制值,如果是,我需要将4舍入为5,使其均匀分为10。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

我假设,给定一些数字A和B,你想要找到一个数字x,这样:

  • x均匀划分A
  • x大于或等于B
  • x最小化

在您给出的示例中,A = 10,B = 4,x = 5。 找到x的最简单代码方法是:

public int getX(int a, int b){
    while(a % b != 0){
        b++;
    }
    return b;
}

一般来说,找到任意数字的因子并不容易。事实上,一些计算机领域,如密码学,取决于分解大数字需要很长时间的事实。

答案 1 :(得分:0)

听起来非常模糊。你可以用

搞清楚
if (10%4 != 0) ... //checks if there is a remainder

但是如何将它提升到5将需要更多的背景。

答案 2 :(得分:0)

这是我建议的一个简短的功能:

private int FindCeilingDevider(int numberToDivide, int divisor)
{
    double result;

    do
    {
        result = (double) numberToDivide / (double) divisor;
        divisor++;
    }
    while (result != Math.Ceiling(result));
    return divisor - 1;
}