数据%(int)(1e9+7)
例:
int count=0;
for(int i=0;i<n;i++){//n很大很大
count=(count+i)%(int)(1e9 + 7);
}
不要使用count+=i%(int)(1e9 + 7) 因为它只对i取模;
也不要直到return再取模,因为运算过程中数字会很大,超出数据范围会导致数据错误
补充:取模和取余
1.一正一负数时:取模商取小,取余商靠0
-5除以3等于-1.66
-5mod3取模商取小取-2,故-5mod3=-5-3*(-2)=1
-5rem3取余商靠0取-1,故-5rem3=-5-3*(-1)=-2
2.两个都是正数或者两个都是负数时值一样:
5mod3=2,5rem3=2;
-5mod-3=-2,-5rem-3=-2