最佳答案
给定整数值x和y, C和c++都返回为商q = x/y,即浮点等价物的整层。我感兴趣的是一种返回天花板的方法。例如,ceil(10/5)=2和ceil(11/5)=3。
最明显的方法是:
q = x / y;
if (q * y < x) ++q;
这需要额外的比较和乘法;和我所见过(实际上使用过)的其他方法都涉及到转换为float或double。有没有一种更直接的方法可以避免额外的乘法(或二次除法)和分支,同时也避免将类型转换为浮点数?