c++向上取整的方法
因为c++默认向下取整,因此向下取整通常不需要我们考虑。
考虑向上取整:
公式: ceil(A/B) = floor((A-1)/B) + 1
在c++里也可以写为
Up(a/b) = (a-1)/b + 1
等价于 (a+b-1)/b
可以想象为利用C++向下取整的方法,将a 加上一个b-1,则
1. 如果a被b整除,则b-1/b被舍弃,结果正确
2. 如果a不被b整除,则其余数 加上b-1必然>=b,且<2b,余数+b-1/b必然=1
ref:
因为c++默认向下取整,因此向下取整通常不需要我们考虑。
考虑向上取整:
公式: ceil(A/B) = floor((A-1)/B) + 1
在c++里也可以写为
Up(a/b) = (a-1)/b + 1
等价于 (a+b-1)/b
可以想象为利用C++向下取整的方法,将a 加上一个b-1,则
1. 如果a被b整除,则b-1/b被舍弃,结果正确
2. 如果a不被b整除,则其余数 加上b-1必然>=b,且<2b,余数+b-1/b必然=1
ref: