我可以写程序
int a = 3;
int b = 4;
Console.WriteLine(a % b);
Run Code Online (Sandbox Code Playgroud)
我得到的答案是3. 3 mod 4 = 3怎么样?
我无法弄清楚这是如何以这种方式计算的.
qua*_*oup 60
我不太清楚会发生什么,但我无法弄清楚其余部分是3.
所以你有3个饼干,你想在4个人之间平均分配它们.
因为有更多的人而不是cookie,没有人得到一个cookie(商 = 0),你自己剩下 3个饼干.:)
Nul*_*ion 50
因为剩下的3/4 = 3.
http://en.wikipedia.org/wiki/Modulo_operator
如果你不明白为什么余数是3,我们在这里遇到了一些更严重的问题.
我发现接受的答案令人困惑和误导。
模数与返回被除数和除数之比的现代除法不同。这通常表示为包含商中余数的十进制商。这就是让人绊倒的原因。
模数只是除法中用于小数商之前的余数。
示例:两个数的除法通常表示为十进制数(商)。但是,例如 的除法结果1/3也可以用整数表示为“0 余数为 1”。但这种形式的商在现代数学中并不是很有帮助,因此我们在现代计算器中经常看到返回的是小数值或两个数字的比率。
1 / 3 = .333333333......
Run Code Online (Sandbox Code Playgroud)
但模数并不是这样工作的。它忽略除法返回的小数商值或比率,取 中的“0 余数为 1”的商表达式1/3,并提取该除法返回的1 或余数。它只是从商中去掉余数,并在转换为小数之前吐出除法的余数。下面是模数的工作原理...
1 % 3 = 1
Run Code Online (Sandbox Code Playgroud)
因此,描述模数的更好方法是,它是将第二个数字(除数)尽可能多次除以第一个数字(被除数)后剩下的整数(余数)。
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
Run Code Online (Sandbox Code Playgroud)
这些由模数(模数学)返回的整数余数在软件程序中非常有用,可用于提取一周中的某一天、创建交替序列、查找数字是偶数还是奇数等。