A/B 向上取整的方法

2016-01-29 12:14 75 1 收藏

A/B 向上取整的方法,A/B 向上取整的方法

【 tulaoshi.com - C语言心得技巧 】

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

1. 问题

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

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

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

2. 方法

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

3. HUNTON 的证明

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

上取整用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://www.tulaoshi.com)

来源:http://www.tulaoshi.com/n/20160129/1485188.html

延伸阅读
标签: 心理健康
回首忙碌的一天,是体会成长的快乐还是凑合的无奈呢?在职场奔波,也许激烈的竞争和冷酷的考核快把你压弯了腰,没办法,这就是工作! 一切都还得继续。周日晚上焦虑过后,新的一周照样开始;实在不想再看见老板那张脸了,每天还得照旧毕恭毕敬……还能改变什么?只有心态。其实,心态变了,心理健康了,人就会跟着变。 ...
标签: 养生 健康
    引体向上怎么做?医学专家表示引体向上对脊柱疾病有益,而引体向上也是健美界推崇的锻炼方式,很多人都在跟7次世界奥林匹亚先生健美大赛冠军、超级动作片影星阿诺德·施瓦辛格学引体向上。然而,普通人毕竟不是施瓦辛格,测验过关、出点肌肉是比较现实的需求。     引体向上对脊柱疾病有益     引体...
标签: 整容
问答 图钉提问: 专家您好:我有一个问题要问您,就是颈部淋巴结肿大是采用穿刺细胞学检查好还是病理切片好,或采用B超即其他方法好呢? 图老师解答: 您好:一般是X线摄片、病理切片镜检、B超、CT。 男士用什么方法整眉毛好 整容介绍 爱美之心,人...
标签: 整容
问答 图钉提问: 我已经22岁了~`因为小时候家境贫困,一直没去整形牙齿,直到要自己找工作了,才知道外貌是个大问题,请问,我现在的年龄还可以整牙吗? 图老师解答: 这个年龄可以做矫正. 整牙的好tuLaoShi.com处 整容介绍 大家经常说的一句话就...
B站怎么升级 B站的升级众所周知是非常缓慢的,特别是后期,前期升级只要通过答题测试和注册以及实名制登记就能快速升级并且获得相应的硬币奖励。当你完成所谓的新手任务之后,要做的就是每天熬刷经验,具体的方式即评论,登录,观看视频,分享视频。当然如果你是一个有才能的人,可以做自己的原创视频,上传之后其他人投币也能直接增加你的账...

经验教程

434

收藏

74
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部