Java обеспечивает только разделение по этажам /
по умолчанию.Но мы можем написать потолок в терминах этажа .Давайте посмотрим:
Любое целое число y
можно записать в виде y == q*k+r
.Согласно определению деления по полу (здесь floor
), которое округляется r
,
floor(q*k+r, k) == q , where 0 ≤ r ≤ k-1
и делению по потолку (здесь ceil
), которое округляется до r₁
,
ceil(q*k+r₁, k) == q+1 , where 1 ≤ r₁ ≤ k
где мы можем заменить r+1
на r₁
:
ceil(q*k+r+1, k) == q+1 , where 0 ≤ r ≤ k-1
Затем мы подставляем первое уравнение в третье для q
, получая
ceil(q*k+r+1, k) == floor(q*k+r, k) + 1 , where 0 ≤ r ≤ k-1
Наконец, учитывая любое целое число y
, где y = q*k+r+1
для некоторых q
, k
, r
, у нас есть
ceil(y, k) == floor(y-1, k) + 1
И мы закончили.Надеюсь, это поможет.