一个常见面试题的解法之我见
2009-09-27 13:31
225 查看
大四了 没事找点面试题做做,不过发现大部分题目给出的答案有待商榷,下边举个例子
给定m的值计算1-2+3-4+5+.....+m
在以上题目可以看出,当m效率很低,每次都由于if判断打断for流水线的执行作业;而第一种方法只要一次判断即可,即使m取值很大,效率依然很好。
给定m的值计算1-2+3-4+5+.....+m
class Program { protected static int Func1(int i)//我的解法 { int sum = 0; if (i % 2 == 0) sum = -(i / 2); else sum = (i + 1) / 2; return sum; } protected static int Func2(int i)//网上很多参考答案 { int sum=0; for (int k = 1; k < i+1; k++) { if (k % 2 == 1) sum += k; else sum = sum - k; } return sum; } static void Main(string[] args) { int i; Console.WriteLine("请输入要计算的数字个数"); i =Convert.ToInt32( Console.ReadLine()); int result1 = Func1(i); int result2 = Func2(i); Console.WriteLine("func1的计算结果是{0},func2的计算结果是{1}",result1,result2); Console.ReadLine(); } }
在以上题目可以看出,当m效率很低,每次都由于if判断打断for流水线的执行作业;而第一种方法只要一次判断即可,即使m取值很大,效率依然很好。
相关文章推荐
- 30个常见的大数据面试题,让你的薪资提升一个等级,大家快来看看吧!
- 实现sqrt函数功能,之前也是常见的面试题,本文两种解法,二分法,牛顿迭代法
- 前端常见算法面试题之 - 从尾到头打印链表[JavaScript解法]
- [导入]关于阶乘的两个常见算法及一个相关面试题
- 80道常见数据结构面试题及其解法(2)
- 一个数据库面试题,求更好解法
- 关于阶乘的两个常见算法及一个相关面试题
- 一个变态C/C++面试题的变态解法
- 关于阶乘的两个常见算法及一个相关面试题
- 常见面试题——计算一个字节里有多少bit置1
- 一道面试题:三次称量判断十二个球中一个劣质球的解法
- 一个C++面试题的数组和STL解法
- 用stack实现queue-这是一个很常见的面试题
- 前端常见算法面试题之 - 重建二叉树[JavaScript解法]
- 常见iOS面试题 之 怎么判断一个类是否遵循某个协议
- 关于autoreleasepool一个常见的面试题
- 常见笔试面试题:实现一个递增排序的单链表
- 前端常见算法面试题之 - 二维数组中的查找[JavaScript解法]
- 一个数据库面试题的多种解法
- 关于阶乘的两个常见算法及一个相关面试题【转】