有两个整数变量。您可以在不使用任何 if 条件、不强制转换和不使用其他变量的情况下交换这些整数变量吗?例如:
int a = 10;
int b = 5;
a > b
总是。答案应该是a == 5
和b == 10
有两个整数变量。您可以在不使用任何 if 条件、不强制转换和不使用其他变量的情况下交换这些整数变量吗?例如:
int a = 10;
int b = 5;
a > b
总是。答案应该是a == 5
和b == 10
如果您认为不使用 3rd 变量很聪明,那么进行一些性能测试,您会发现更快的方法是使用 3rdint
临时存储变量。
无论如何,我用 XOR 位运算符解决了这个问题:
a ^= b;
b ^= a;
a ^= b;
a=a+b;
b=a-b;
a=a-b;
这是一个小把戏。
int a = 5;
int b= 10;
a = a+b;
b = a-b; /* Really (a+b) - b i.e. a */
a = a-b; /* Really (a+b) - a i.e. b */
是的,您可以通过使用加/减操作来做到这一点。
Example:
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
a=a+b
b=a-b
a=a-b
就是这样!
简单试试这个
a=a+b;
b=a-b;
a=a-b;
就是这样