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;
标签:优雅 位运算 简洁 判断 运算 变量 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;
标签:优雅 位运算 简洁 判断 运算 变量 class pos 个人
原文地址:https://www.cnblogs.com/in4ight/p/8481136.html