模数运算如何在C ++中运行?

时间:2017-03-03 06:10:42

标签: c++ modulus

为什么我得到这个输出:0 1 2 3 0 1 2 3 0 1运行下面的代码后?模数运算是否在一个数除以另一个数后找到余数?

#include <iostream>
using namespace std;
int main ()
{
for (int i=0; i< 10; ++i)
cout << i % 4 << " ";
}

4 个答案:

答案 0 :(得分:4)

答案是对的。 &#39;%&#39;意思是&#34;提醒&#34;。 %运算符是余数运算符A % B运算符实际上回答了问题“如果我使用整数运算将A除以B,其余的将是什么?”

  

dividend = quotient * divisor + remainder

0 % 4 = 0
1 % 4 = 1
2 % 4 = 2
3 % 4 = 3
4 % 4 = 0
5 % 4 = 1
.....
etc..

对于负数......

   1 % (-4) = 1
(-2) % 4    = -2
(-3) % (-4) = -3
  

使用余数运算符,结果的符号与被除数的符号相同

您可以在What's the difference between “mod” and “remainder”?

了解更多信息

答案 1 :(得分:1)

是的,这就是模数的工作原理。输出正确。

0 % 4 = 0
1 % 4 = 1
2 % 4 = 2
3 % 4 = 3
4 % 4 = 0
5 % 4 = 1
...

取数字,尽可能多地移除4个。剩下的是模数。

答案 2 :(得分:1)

模数运算符在将第一个数除以第二个数之后返回余数

0 % 4 = 0
1 % 4 = 1
2 % 4 = 2
3 % 4 = 3
4 % 4 = 0
5 % 4 = 1
6 % 4 = 2
7 % 4 = 3
8 % 4 = 0
9 % 4 = 1

答案 3 :(得分:1)

确实。
0/4 = 0余数0
1/4 = 0余数1
等等。