How do you swap two integer variables without usin

2019-01-12 07:00发布

问题:

There are two integer variables. Can you swap those integer variables without using any if conditions, without casting, and without using additional variables? For example:

int a = 10;
int b = 5;

a > b always. The answer should be a == 5 and b == 10

回答1:

If you think you are being clever by not using 3rd variable then do some performance tests and you see that the much faster way is to use 3rd int to store the variable temporarily.

Anyways, i solved the problem with XOR bitwise operator:

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


回答2:

a=a+b;
b=a-b;
a=a-b;


回答3:

It's a little trick.

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 */


回答4:

simple try this

a=a+b;
b=a-b;
a=a-b;

and that's it



回答5:

yes you can do it By using plus/minus operation.

Example:
num1 = num1 + num2;                
num2 = num1 - num2;                
num1 = num1 - num2;


回答6:

a=a+b
b=a-b
a=a-b

That's it!



标签: swap