求余符号跟正负没有关系。
n % m的定义是 n = k * m + p, n、m、k、p是整数。
k=[n/m] ,方括号的含义是不大于n/m的最大整数;
5 =(-1)*(-3)+ 2; 此时, k = [n/m] = [5/(-3)] = -1 ;余数p = 2;
5 = 1 * 3 + 2; 此时, k = [n/m] = [5/3] = 1 ;余数p = 2;
-5 = (-1)* 3 +(-2); 此时, k = [n/m] = [(-5)/3] = 1 ;余数p = -2;
-5%3=-2,5%-3=2。
既然%是取余除,那剩下的余数肯定与被除数同符号,否则就太不可思议了……
1.建议你以后这种问题直接在软件里面运行就知道了 2.%是取余符号,计算结果就是余数,正数和负数余数肯定不一样嘛,-5余数是-2,5余数是2。3.计算机做算术过程和人是一样的,-5%3=1...-2,5/-3=-1....2
-5%3 是 -25%-3 是 2