[每天一个知识点]24-编程技巧-如何简单计算分页等需要进1的除法
来源:互联网 发布:苹果mac笔记本 编辑:程序博客网 时间:2024/05/16 05:31
我们经常遇到这种场景,一个盒子可以装5台肾6,要偷偷带走21台肾6需要多少个盒子?或者一页纸可以记7个妹子的电话号码,要记20个妹子的电话号码需要准备多少张纸?当然,更现实的可能是web页面上一页显示n条记录,x条记录需要分多少页显示。
要精确计算当然是
double pages = (double)x / n;
你就能得到1.5页或者是3.1415929页这种奇怪的数值了,不过你的老板可能会嫉妒你的算术水平,会要求你得到2或者4的结果,这时候怎么办?难道用
int pages = x / n + 1;这样吗?貌似看起来可能大概还是能正常工作的,好像解决了这个问题……等等,当x能被n整除的时候好像是不该+1的,这可怎么办呢,代码改成这样吧
int pages = (x % n == 0) ? x / n : x / n + 1;这回代码果然能用了,只是看起来好像有点复杂,还是使用这个简单的方法吧
int pages = (x + n - 1) / n;道理很简单,利用整数除法去尾的特点,如果x本来不能整除n加上n-1之后就会使结果加1,如果x本来能够整除n那增加的n-1会被去尾结果保持不变。
PS1:开篇的问题,要记20个妹子的电话需要20张纸,否则你会被妹子打死的。
PS2:如果有355条记录,每页显示113条,需要的页数是3.1415929,这个叫密率,祖冲之的计算结果。
PS3:不用考虑倒数第二种写法与最后一种写法的效率问题,人类可读更重要,程序效率差距微乎其微。
0 0
- [每天一个知识点]24-编程技巧-如何简单计算分页等需要进1的除法
- 每天一个知识点(1)
- shell编程中如何计算使用除法
- 如何计算一个网站需要的带宽?
- 如何写一个简单的分页
- 一个计算除法四舍五入的方法
- js 除法 小数 的处理方法(分页等情况)
- 每天一个知识点:2017/9/9:简单工厂模式
- 一个简单的分页
- 一个简单的分页
- 一个简单的分页
- [每天一个知识点]31-乱七八糟-如何判断预言有效
- 如何计算一个月每天的统计(回复网友问题)
- 你想建设一个能承受500万PV/每天的网站吗?如何计算呢?
- 记录: 看thinkphp源码,发现一个有趣的除法 计算
- 一个支持大数计算的类型 仅不支持除法
- 【不断更新贴】总结编程的技巧、语法等,需要多敲代码、记忆掌握
- 一个非常简单的知识点
- 101算法面试题
- Storm 实时计算分布式锁 Curator的使用
- ImageLoader显示文件夹下的图片
- 再逢“最大公约数”
- 1005. 继续(3n+1)猜想 (25)
- [每天一个知识点]24-编程技巧-如何简单计算分页等需要进1的除法
- 【知识梳理向】Objective-C中的@property
- HDU 1568 Legal path (DP)
- Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭
- 给int赋最小值问题
- 防火墙知识点小结
- 数论里面的定理
- 【动态调试so文件】 + AliCrackMe_2分析记录
- 驯服腾讯的QQ(在此我谴责一下国内的软件制造商)