gri*_*eve 6 language-agnostic math
编程时,我经常发现自己需要计算如下内容:
x = (y / n) + (y % n ? 1 : 0);
或者更明确地说:
x = y / n;
if (y % n != 0) {
x = x + 1;
}
Run Code Online (Sandbox Code Playgroud)
是否有更优雅的方式来实现这一价值?可以在不使用条件表达式的情况下实现吗?
Seb*_*olm 14
因此,您希望整数除法向上舍入而不是向下舍入.你可以通过添加n-1到分子来伪造这个:
x = (y + n - 1) / n;
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以将值向下舍入到足以为您提供所需结果的值.