私はプログラムを書くことができます
int a = 3;
int b = 4;
Console.WriteLine(a % b);
私が得る答えは3です。3mod 4 = 3はどうですか???
これがこのように計算される方法を理解できません。
残りの3/4 = 3だからです。
http://en.wikipedia.org/wiki/Modulo_operator
残りが3である理由がわからない場合は、ここにいくつかの より深刻な問題 があります。
私は何を期待するのかよくわかりませんでしたが、残りが3である方法を理解できませんでした。
したがって、3つのCookieがあり、4人で均等にdivideにしたいとします。
Cookieよりも人の数が多いため、誰もCookie(商 = 0)を取得せず、remainderが3つのCookieを取得します。 :)
3 mod 4は、3を4で割った余りです。
この場合、4は3になり、残りは3になります。
他の人が説明したように、 "mod"演算子を使用したくない場合。以下は、「a」を「n」で割った余りを計算する方程式です。
a-(n* int(a/n))
私はすでにユーザーが答えを理解しているかもしれないと思っています..多くの優れたプログラマーがいるので..簡単な言い方で%
は、独自の整数で除算した後、リマインダーを通知します。
例えば.
int a = int.Parse(Console.ReadLine());
int b = a % 2;
これで13と入力すると、単純な数学では13を2で割った後、残りが1になるので、1になります。よろしくお願いします。
私は答えが紛らわしく、誤解を招くのを見つけました....
モジュラスは、秒を可能な限り何度もそれに分割した後、最初の数に残されるものです。
1 % 1 = 0 because after dividing 1 into 1, one time, there's nothing left
2 % 1 = 0 because after dividing 1 into 2, two times, there's nothing left
1 % 2 = 1 because 2 won't go into 1, so 1 is left
もう1つは「他の人が説明したとおり」ですが、モジュラスを実行するいくつかの方法(または別の方法を使用する方法)に興味がある場合は、 いくつかの異なる方法のベンチマークとなるこの記事を参照 できます。
基本的に、最も高速な方法は、次のような古き良き係数演算子です。
if (x % threshold == some_value)
{
//do whatever you need to
}