Python
for i in range(1,11):
print("-10 %% %d = %d" %(i, -10%i))
计算结果:
-10 % 1 = 0
-10 % 2 = 0
-10 % 3 = 2
-10 % 4 = 2
-10 % 5 = 0
-10 % 6 = 2
-10 % 7 = 4
-10 % 8 = 6
-10 % 9 = 8
-10 % 10 = 0
可见Python中,以-10 % 9 = 8为例, -10 = 9 * (-2) + 8 来取余数8
C++
for (int i=1;i<=10;i++) {
printf("-10 %% %d = %d\n",i,(-10)%i);
}
计算结果:
-10 % 1 = 0
-10 % 2 = 0
-10 % 3 = -1
-10 % 4 = -2
-10 % 5 = 0
-10 % 6 = -4
-10 % 7 = -3
-10 % 8 = -2
-10 % 9 = -1
-10 % 10 = 0
可见C++中,以-10 % 9 = -1为例,-10 = 9 * (-1)+ (-1)来取余数-1
总结
在Python中,负数对正数取余,要保证余数是正数,所以会比C++中多算一个除数