代码效率VS代码配置
来源:互联网 发布:php 访问 编辑:程序博客网 时间:2024/05/17 03:28
先来看一个简单的问题:
1.给定一个自然数N,求出所有小于N的自然数中,是3或者5倍数的数,并计算它们的和。
2.如果一个数既是3也是5的倍数,只加一次。
3.比如N=10,满足条件的数有9,6,5,3,那么他们的和很显然是23。
问题的处理:
1.大部分人拿到这个问题,下意识地会遍历所有小于N的自然数,一一匹配,看它是否是3或5的倍数。这种做法,效率不高,也没有什么亮点。
2.有部分人会思考如何对上面的方法进行改进,看如何增加可配置性。比如把3,5写进配置中,遍历时读取配置即可。假如业务修改了,比如说我只需要求3的倍数,不需要求5的倍数,或者,我想增加对7,11的判断,这样就非常方便,只需要修改一个地方。
3.还有的人单单从效率出发,用数学方法,比如等差数列,对其求和,这样效率的确很高,但可配置性显然不如方法二,一旦业务发生变更,要新增修改的地方就很多了。
代码实现:
public class Solution {//配置int[] factors = new int[] { 3, 5 };//通用遍历方法public int solution(int number) {int count = 0;for (int i = number - 1; i > 0; i--) {for (int f : factors) {if (i % f == 0) {count += i;break;}}}return count;}//利用等差数列性质的数学方法public int math_solution(int n) {int a = (int) Math.ceil(n / 3d) - 1;int b = (int) Math.ceil(n / 5d) - 1;int c = (int) Math.ceil(n / 15d) - 1;return (3 * a * (a + 1) + 5 * b * (b + 1) - 15 * c * (c + 1)) / 2;}public static void main(String[] args) {//2318System.out.println(new Solution().solution(100));//2318System.out.println(new Solution().math_solution(100));}}
总结:
代码效率,可扩展性,可配置性是我们关注的几个方面,有时候很难取舍,但对于我们做应用系统,做业务的人来说,我个人认为,可扩展性,可配置性,可读性重于代码效率。
0 0
- 代码效率VS代码配置
- vs 配置非安全代码
- 代码效率
- VS插件,好用,提高代码效率。Productivity Power Tools
- VS插件,好用,提高代码效率。Productivity Power Tools
- VS插件,好用,提高代码效率。Productivity Power Tools
- VS代码生成工具ReSharper配置快捷键
- VS代码自动提示、语法着色、高亮显示,提高开发效率,提升代码质量
- VS代码生成工具ReSharper的代码检查配置
- 代码效率比较1
- php代码效率测试
- Symbian平台代码效率
- php代码效率测试
- [整理]循环,代码效率
- 提高代码效率
- php代码效率测试
- AS3 代码效率优化
- 代码执行的效率
- Android酷炫实用的开源框架(UI框架)
- Xcode如何快速的根据错误日志定位到相应的代码
- EXCEL下载模板
- 对象(JS)
- 【java】 java 高并发解决方案和高负载优化方法
- 代码效率VS代码配置
- php解析url并得到url中的参数
- 九度OJ-1205:N阶楼梯上楼问题
- 数据库相关学习
- Java复习之IO打印流
- 转载了大神的一篇文章,关于表达式的二叉树遍历
- 1.2 单词翻转
- 64位 win7 安装pygame的问题(已解决)
- Windows环境下C源程序转换成可执行文件的过程