1.有两个变量a、b,不用判断语句,找出其中较大的数
int max = ((a + b) + abs(a - b)) / 2
2.将a,b交换,不用任何中间变量
方法一:加减法(可能会溢出)
a = a + b;
b = a - b;
a = a - b;
方法二:乘除法(可能溢出,b不为0)
a = a * b;
b = a / b;
a = a /b;
方法三:异或法
a = a ^ b;
b = a ^ b;
a = a ^ b;
异或满足结合律,(a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a
参考:异或的性质及运用