码迷,mamicode.com
首页 > 其他好文 > 详细

a, b交换与比较问题

时间:2018-02-27 23:33:01      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:优雅   位运算   简洁   判断   运算   变量   class   pos   个人   

1. 求a, b中较大的数,不使用if、?、switch等判断语句。

答案:

int max = ((a+b)+abs(a-b)) / 2

另一种思路是求两者的差,然后通过位运算判断差值的正负,不过个人觉得还是第一种各位简洁优雅。

 

2. 交换a, b的值,要求不使用任何中间变量。

答案:

a = a^b;
b = a^b;
a = a^b;

 

a, b交换与比较问题

标签:优雅   位运算   简洁   判断   运算   变量   class   pos   个人   

原文地址:https://www.cnblogs.com/in4ight/p/8481136.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!