编程时,我经常发现自己需要计算类似的东西:
x = (y / n) + (y % n ? 1 : 0);
或更明确地说:
x = y / n;
if (y % n != 0) {
x = x + 1;
}
有更优雅的方式来实现这个价值吗?可以在不使用条件表达式的情况下实现吗?
答案 0 :(得分:14)
因此,您希望整数除法向上舍入而不是向下舍入。你可以通过将n-1
添加到分子来伪造这个:
x = (y + n - 1) / n;
通过这种方式,您可以将值向下舍入到足以为您提供所需结果的值。