算法--两个数大小比较,不用分支判断
来源:互联网 发布:东方赢家软件下载 编辑:程序博客网 时间:2024/06/07 00:26
说明:摘自《程序员面试宝典(第二版)》,以及同学讨论
原题:
There are two in variables: a and b, don't use "if", "?:", "switch" or other judgement statements, find out the biggest one of the two numbers.
(有两个变量a和b,不用“if”,“?:”,“switch”或其他判断语句,找出两个数中间比较大的)
方法一
&&其实也是一种分支判断,所以它应该不算答案
int max1(int a, int b){ int tmp = a; (b > a) && (tmp = b); return tmp;}
方法二
这个方法可能会产生溢出
int max2(int a, int b){ return (a + b + abs(a - b)) / 2;}
方法三
注意这里的unsigned类型转换
int max3(int a, int b){ int c = a-b; int arr[] = {a, b}; return arr[unsigned(c) >> sizeof(int) * 8 - 1];}
- 算法--两个数大小比较,不用分支判断
- 不用比较符判断两个数的大小 (移位)
- 不用判断语句比较两个数的大小值
- 08-14 比较两个数的大小,不用判断语句
- 不用判断语句比较两个数的大小值
- 不用if比较两个数大小
- 不用if比较两个数大小
- 不用if比较两个数大小
- 不用if比较两个数大小
- C++ 不用判断运算符进行比较两个数的大小
- 不用比较运算符比较两个数的大小
- 不用比较运算符比较两个数的大小
- 不用比较语句比较两个数的大小
- 不用运算符比较两个int数的大小
- 不用大于、小于、if语句比较两个数的大小
- [C++]不用if比较两个数大小
- 程序员面试宝典p40----不用if比较两个数大小
- 不用那if,switch,?:语句判断两个数的大小
- android去掉标题栏和状态栏
- 云计算平台管理的三大利器Nagios、Ganglia和Splunk
- 东子破解修改oracle10g的最大连接数
- 使用addScala将SQLQuery自定义查询映射到pojo中
- 学习 查看修改mysql编码方式
- 算法--两个数大小比较,不用分支判断
- 关于网页前端框架art.dialog的一些问题
- a标签在firefox和chrome中失效(转自www.jqueryba.com)
- 关于lcd 驱动
- 触摸屏驱动分析(s3c-ts.c)(Linux)(分析)
- 面向对象程序设计核心—类
- uilable根据内容多少自动改变高度
- 嵌入式面试 01
- IM-A820L运营商短信修改教程(供其他泛泰机型参考)