A/B 向上取整的方法

安分的女汉子na

安分的女汉子na

2016-01-29 12:14

A/B 向上取整的方法,A/B 向上取整的方法
A/B 向上取整的方法
作者:孙雪青

1. 问题

A,B都是整数并且 A>1, B>1

求 ┌ A/B ┐ 即 A/B 的上取整。
当 A/B 整除,往上取整返回值 为 A/B。
当 不整除,返回值是 int(A/B) + 1

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)

这个算法的一个应用:如果你有一个动态增长的缓冲区,增长的步长是 B,
某一次缓冲区申请的大小是 A,这个时候,就可以用这个算法,计算出缓冲区的一个合
适大小了,正好可以容纳A,并且不会过于得多,多余部分不会比B多。

2. 方法

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

3. HUNTON 的证明

上取整用UP表示
由于A>1、B>1,且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>1、B>1的整数A、B都有:
UP(A/B) = int((A+B-1)/B)


附录:
CSDN 的原始帖子 http://expert.csdn.net/Expert/TopicView.asp?id=1937887
CSDN 的 FAQ http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=171848

作者信息:
孙雪青 (网名 alphasun,shaking,炮炮;主页 http://alphasun.betajin.com/)

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/cyuyanjiaocheng/)
展开更多 50%)
分享

猜你喜欢

A/B 向上取整的方法

C语言教程 C语言函数
A/B 向上取整的方法

excel取整函数怎么用

excel
excel取整函数怎么用

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

引体向上是什么?引体向上的技巧

引体向上 运动 健身 运动健身
引体向上是什么?引体向上的技巧

正确的取茶方法

健康饮食 饮食禁忌 饮食指南 饮食养生
正确的取茶方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

宝宝取乳名的方法

电脑网络
宝宝取乳名的方法

培养宝宝乐观向上的五个方法

育儿知识 怀孕 孕妇
培养宝宝乐观向上的五个方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JSP如何保存用户上次登录时间

JSP如何保存用户上次登录时间

《全民打怪兽》高手分享必中解析

《全民打怪兽》高手分享必中解析
下拉加载更多内容 ↓