java 为什么 X/Y的向上取整可以用(X+Y-1)/Y导出

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 的下界

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值