39

私はプログラムを書くことができます

int a = 3;
int b = 4;

Console.WriteLine(a % b);

私が得る答えは 3 です。どのように 3 mod 4 = 3 ですか?

これがどのように計算されているのかわかりません。

4

7 に答える 7

99

何が期待できるのかよくわかりませんでしたが、残りが3であることがわかりませんでした。

つまり、3つのCookieがあり、それらを4人に均等に分割したいとします。

クッキーよりも多くの人がいるので、誰もクッキーを取得せず(= 0)、残りの3つのクッキーを自分で取得します。:)

于 2010-08-06T20:45:57.567 に答える
70

3 / 4 の余り = 3 なので。

http://en.wikipedia.org/wiki/Modulo_operator

于 2010-08-06T20:37:02.203 に答える
17

3 mod 4 は、3 を 4 で割った余りです。

この場合、4 は 3 つの 0 回に 3 が残ります。

于 2010-08-06T20:37:07.300 に答える
4

ユーザーが答えを理解している可能性があると私はすでに考えています。優れたプログラマーはたくさんいるので.. 簡単な言葉遣い%では、自分の整数で割った後のリマインダーを教えてくれます。

例えば

int a = int.Parse(Console.ReadLine());
int b = a % 2;

13 を入力すると 1 になります。単純な数学では、13 を 2 で割ると余りが 1 になるからです。あなたがそれを得たことを願っています。

于 2013-02-05T15:11:23.447 に答える
2

他の人が説明したように、「mod」演算子を使用したくない場合。「a」を「n」で割った余りを求める式は次のとおりです。

a-(n* int(a/n))

于 2013-10-11T17:38:26.390 に答える
0

別の「他の人が説明したように」ですが、モジュラスを実行する(または別の方法を使用する)いくつかの方法に興味がある場合は、いくつかの異なる方法をベンチマークするこの記事を読むことができます。

基本的に、最速の方法は、次のような古き良きモジュラス演算子です。

if (x % threshold == some_value)
{
    //do whatever you need to
}
于 2014-07-11T07:07:26.857 に答える