相关疑难解决方法(0)

C/C++中整数除法的快速上限

给定整数值,x并且yC和C++都返回作为q = x/y浮点等效的底数的商.我对一种返回天花板的方法很感兴趣.例如,ceil(10/5)=2ceil(11/5)=3.

显而易见的方法包括:

q = x / y;
if (q * y < x) ++q;
Run Code Online (Sandbox Code Playgroud)

这需要额外的比较和乘法; 我见过的其他方法(事实上使用)涉及铸造为floatdouble.是否有更直接的方法可以避免额外的乘法(或第二个除法)和分支,并且还可以避免作为浮点数进行转换?

c c++ algorithm math

241
推荐指数
8
解决办法
14万
查看次数

标签 统计

algorithm ×1

c ×1

c++ ×1

math ×1