Ted*_*ool 5 language-agnostic math language-design modulus
我不是在询问定义,而是为什么语言创建者选择在C++中定义具有不对称行为的模数.(我认为Java也是)
假设我想找到大于或等于n的最小数,它可以被f整除.
如果n是正数,那么我做:
if(n % f)
ans = n + f - n % f;
Run Code Online (Sandbox Code Playgroud)
如果n为负数:
ans = n - n % f;
Run Code Online (Sandbox Code Playgroud)
显然,在处理负数和正数时,这个定义并不是最有利的.那为什么这样定义呢?在什么情况下会产生权宜之计?