Равномерно делимое число потолков - PullRequest
0 голосов
/ 15 ноября 2011

Мне нужна помощь с простыми математическими вычислениями и наиболее эффективным способом их выполнения в c #.

10 / 4 = 2.5

Как определить, является ли сумма десятичным значением и нужно ли мне округлять 4 до 5, чтобы она делилась на 10 равномерно.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 15 ноября 2011

Я предполагаю, что, учитывая некоторые числа A и B, вы хотите найти число x, такое что:

  • х равномерно делит А
  • x больше или равно B
  • х минимизирован

в данном примере A = 10, B = 4 и x = 5. Самый простой способ найти x - это:

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

Вообще говоря, найти факторы произвольного числа нелегко. Фактически, некоторые компьютерные области, такие как криптография, зависят от того факта, что факторизация больших чисел занимает много времени.

0 голосов
/ 15 ноября 2011

Вот мое предложение для короткой функции, которая делает это:

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

    do
    {
        result = (double) numberToDivide / (double) divisor;
        divisor++;
    }
    while (result != Math.Ceiling(result));
    return divisor - 1;
}
0 голосов
/ 15 ноября 2011

Это звучит очень расплывчато.Вы можете понять это, используя

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

Но как получить его до 5, потребуется гораздо больше контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...