gpt4 book ai didi

c++ - C++ 中的除法汇总

转载 作者:行者123 更新时间:2023-12-01 15:06:31 26 4
gpt4 key购买 nike

在不使用 std::ceil 的情况下,如何在 C++ 中对两个 int 值进行除法?

通常我最终会做如下事情:

double res = ceil(a / (double) b);

有什么方法可以在不使用 std::ceil 的情况下复制结果?

最佳答案

如果 ab 都是正数,您可以完全避免 float 并获得精确的结果(FP 舍入没有问题)和更快的执行时间方法:

int res = (a + (b - 1)) / b;

对于负的 a 您不需要任何修正 - 整数除法执行的截断已经具有与您的 ceil 公式匹配的语义;所以,如果你想要一个更一般的情况:

int res = (a<0 ? a : (a + (b - 1))) / b;

关于c++ - C++ 中的除法汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62032583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com