A/B 向上取整的方法

来源:互联网 发布:kindle导出电子书 mac 编辑:程序博客网 时间:2024/04/29 13:14

int( (A+B-1)/B )

UP(A/B) = int( (A+B-1)/B )


证明:

  上取整用UP表示

  由于A>0、B>0,且A、B都是整数,所以可以设A=NB+M

  其中N为非负整数,M为0到B-1的数,则
      A/B = N + M/B
      (A+B-1)/B = N + 1 + (M - 1)/B;

  当M为0时,
       UP(A/B) = N,
       int((A+B-1)/B) = N + int(1 - 1/B) = N

  当M为1到B-1的数时,0 <= M-1 <= B-2
       UP(A/B) = N + 1,
       int((A+B-1)/B) = N + 1 + int((M-1)/B) = N + 1

  所以对A>0、B>0的整数A、B都有:
       UP(A/B) = int((A+B-1)/B)


原创粉丝点击