私はいくつかの簡単な数学計算とC#でそれらを実行する最も効率的な方法について助けが必要です。均等割り算の天井番号
10/4 = 2.5
合計が10進値であるかどうかを判断するにはどうすればよいですか?4を5に丸める必要があるので、10に均等に分割する必要があります。
アイデア?
私はいくつかの簡単な数学計算とC#でそれらを実行する最も効率的な方法について助けが必要です。均等割り算の天井番号
10/4 = 2.5
合計が10進値であるかどうかを判断するにはどうすればよいですか?4を5に丸める必要があるので、10に均等に分割する必要があります。
アイデア?
非常に曖昧な音です。
if (10%4 != 0) ... //checks if there is a remainder
しかし、最大5にするにはもっと多くのコンテキストが必要です。ここで
はそれをやって、短い機能のための私の提案です:
private int FindCeilingDevider(int numberToDivide, int divisor)
{
double result;
do
{
result = (double) numberToDivide/(double) divisor;
divisor++;
}
while (result != Math.Ceiling(result));
return divisor - 1;
}
私は、そのようなことを、いくつかの数字のAとBを考えると、あなたは数xを見つけたい、と仮定しています:
、A = 10、B = 4、X = 5 Xを見つけるための最も簡単なツーコード方法がある:
public int getX(int a, int b){
while(a % b != 0){
b++;
}
return b;
}
一般的には、因子を見つけることは容易ではない、話します任意の数の実際、暗号化などの一部のコンピュータ分野では、大きな数値を因数分解するのに時間がかかります。
解決策がないことがわかっていると仮定すると、エラー処理が必要なので、何らかの種類の失敗値または例外が必要です。例えば。 'A = 11、B = 4'。また、要素はペアで発生し、少なくとも1つは '<= sqrt(A)です。 '' sqrt(A)> B> x1'、 'x = A/x1'のように単純に終了することはできませんので注意してください。 ) '。 – Keith
この計算では、整数除算であるため、「2」しか得られません。 – Oded