我可以写程序
int a = 3;
int b = 4;
Console.WriteLine(a % b);
我得到的答案是3. 3 mod 4 = 3怎么样???
我无法弄清楚这是如何以这种方式计算的。
答案 0 :(得分:52)
我不太清楚会发生什么, 但我无法弄清楚如何 余数是3.
所以你有3个cookie,你想在4个人之间划分。
因为有更多的人而不是cookie,所以没有人获得一个cookie(商 = 0)并且你自己有一个3个cookie的余数。 :)
答案 1 :(得分:48)
因为剩下的3/4 = 3。
http://en.wikipedia.org/wiki/Modulo_operator
如果你无法弄清楚为什么余数为3,我们这里有一些more serious problems。
答案 2 :(得分:16)
3 mod 4是3除以4时的余数。
在这种情况下,4进入3次零次,余数为3次。
答案 3 :(得分:2)
正如其他人所解释的那样,但如果你不想使用“mod”运算符。这是计算“a”的余数除以“n”
的等式 a-(n* int(a/n))
答案 4 :(得分:1)
我已经认为用户可能已经理解了答案..因为有这么多优秀的程序员...在简单的措辞中%
在用你自己的整数除以后告诉你提醒。
e.g。
int a = int.parse(console.readline());
int b = a % 2;
现在你输入13,它会给1,因为潜水后13比2的余数在简单的数学中是1。希望你能得到它。
答案 5 :(得分:0)
另一个"正如其他人所解释的那样,但如果您对另外几种模数(或使用替代方法)感到好奇,可以read this article which benchmarks a few different ways。
基本上,最快的方法是良好的老式模数运算符,类似于:
if (x % threshold == some_value)
{
//do whatever you need to
}
答案 6 :(得分:0)
我发现答案令人困惑和误解.....
模数是将第二个数尽可能多地划分后剩下的第一个数。
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