跳到主要内容

数学

向上取整

如果 a,b 都为正整数,需要计算 a/b 的向上取整,可以使用以下方法:

  1. math 库 即先转换为浮点数再取整:
    std::ceil(1.0*a/b);
  2. 看余数 如果 a % b == 0,则结果为 a / b;否则结果为 (a / b) + 1。
    a/b + (a % b != 0);
  3. 看余数 如果 a % b == 0,则结果为 a / b;否则结果为 (a / b) + 1。
    (a + b - 1) / b;

特别的,如果b=2b=2,那么可以使用以下方法:

(a+1) / 2;