int型数据相除默认会向下取整,如果我们希望对某个除式(x/y)的结果向上取整,
1.可以使用 工具类Math中的静态方法ceil()
2.可以使用 也可以使用(x+y-1)/y的结果
这个公式的原理如下:
(1)在x, y 不能整除情况下:
假设x=11 y=3
x/y=3...2
我们可以发现,余数总是在1到y-1之间,
那么x+(y-1)/y 相当于把x/y的余数取出1 给y-1使用
变成了 x/y +y/y 结果变成4
完成了向上取整 注意x/y的余数取走1 对x/y的结果并不会产生影响
(2)在x,y可以整除情况下:
因为(y-1)/y=0 所以(x+y-1)/y的结果与x/y结果相同
以上得到更普遍性的结论:
x/y的上界 等于(x+y-1)/y 的下界