无判断max
2015-10-16 09:56
176 查看
请编写一个方法,找出两个数字中最大的那个。条件是不得使用if-else等比较和判断运算符。给定两个int a和b,请返回较大的一个数。若两数相同则返回任意一个。测试样例:
解法:
b=a-b;
如果a>b,则,此时b>0,b右移31位变成0,如果a<b则此时b<0,右移31位为-1(32个1),此时b&(b>>31)==b,a-(a-b)==b;
a-=b&(b>>31)
int getMax(int a, int b) {
// write code here
b=a-b;
a-=b&(b>>31);
return a;
}
1,2
返回:2
解法:
b=a-b;
如果a>b,则,此时b>0,b右移31位变成0,如果a<b则此时b<0,右移31位为-1(32个1),此时b&(b>>31)==b,a-(a-b)==b;
a-=b&(b>>31)
int getMax(int a, int b) {
// write code here
b=a-b;
a-=b&(b>>31);
return a;
}
相关文章推荐
- CString转double
- lnmp安装
- 通信调试经验笔记
- 使用RecyclerView替代ListView(一)
- C#自动轮回调用数据库
- Android 4.4(KitKat)中的设计模式-Graphics子系统
- 微渠道发展 BAE交通运输平台和java呼声,微信mysql数据库开发实例 --图文开发教程
- php自动填充
- QT开发小技巧-窗口处理(一)
- 清空IP缓存
- java 排序一个集合
- android中完全退出程序的四种办法
- HibernateTransactionManager事务管理
- (正则表达式)linux shell 字符串操作(长度,查找,替换,匹配)详解
- 14. 英语休假表达,工作报告 (12句)
- HwLauncher﹕ Launcher dialog dismiss failed : java.lang.IllegalArgumentException: no dialog with id 1
- js操作 ifarm contentWindow属性
- eclipse或MyEclipse修改注释
- 出栈顺序判断
- Java面试参考指南(一)