为什么我得到这个输出: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 << " ";
}
答案 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
了解更多信息使用余数运算符,结果的符号与被除数的符号相同
答案 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
等等。