当a,b 均为同号时结果都一样(结果的符号同a)。
下面讨论异号的情况:
1-取模和求余都是下面的步骤:
1) c=function(a/b);
2)r=a-c*b;
至于function, 取模用的是floor,向-无穷方向取整;求余用的是fix,向0取整;这就导致了第一步结果的不同;取模的结果符号同b ,而取余的结果同a;
C语言中的%指的是求余;
下面是例子:
#include<bits/stdc++.h>
using namespace std;
int main(){
//用C++试试吧
cout<<" 36%10 is "<<36%10<<endl;
cout<<" 36%-10 is "<<36%-10<<endl;
cout<<" -36%10 is "<<-36%10<<endl;
cout<<" -36%-10 is "<<-36%-10<<endl;
//ans 为 6,6,-6,-6
return 0;
}