比较练习
2016-06-30 20:41
393 查看
对于两个32位整数a和b,请设计一个算法返回a和b中较大的。但是不能用任何比较判断。若两数相同,返回任意一个。
给定两个整数a和b,请返回较大的数。
测试样例:
1,2
返回:2
思路:用异或的办法,先用>>31来得到符号位,a-b>0 则表示为1
代码如下:
给定两个整数a和b,请返回较大的数。
测试样例:
1,2
返回:2
思路:用异或的办法,先用>>31来得到符号位,a-b>0 则表示为1
代码如下:
public static void main(String[] args) { System.out.println(AheBbuxuyaopanduan.panduan(2, 1)); } public static int panduan(int a,int b){ int c = a - b ; int scA = sign(c); int scB = flip(scA); return (a*scA + b*scB); } public static int flip(int n){ return (n^1); } public static int sign(int n){ return flip(((n>>31)&1)); }
相关文章推荐
- 如何查看Apache的configure编译参数
- stm32 keil debug 调试笔记二
- 会话控制
- PullRefreshGridView 下拉刷新,上拉加载
- Swift网络封装库Moya中文手册之Endpoints
- Codeforces Round #360 (Div. 2) E. The Values You Can Make DP
- 大数加法
- Values目录下的colors.xml内容
- XListView+圆头像
- docker与虚拟机性能比较
- [rsync+inotify]——监控客户端文件变化,rsync同步到服务器
- javascript “||”、“&&”的灵活运用
- 论文笔记之:DeepCAMP: Deep Convolutional Action & Attribute Mid-Level Patterns
- 几个性能测试工具
- Visual Studio 2015 升级到Update 3后Unreal无法编译的解决方案
- XIB 创建的控件设置0.5高度
- 不相交集合
- 第134课: Spark Streaming总结
- Fresco简单的使用—SimpleDraweeView
- Nginx配置SSL证书部署HTTPS网站