Dan*_*vec 6 c++ math modular-arithmetic
我看到很多有竞争力的程序员用((a + b) % d + d) % dC++ 编写代码.他们为什么不使用(a + b) % d?+ d括号里面有什么用?它与负数有关吗?
谢谢
是的,你是对的.在C++ 11之前%,负参数的余数运算符的行为留给了实现,受到一些约束.d只要该参数中的其他项总和大于或等于,那么添加到左参数可以有所帮助-d,而一般情况并非如此.(在您的特定情况下,对于负数的情况的-a / d倍数将是更好的附加常数.)da