不使用第三个变量,交换 a 和 b 中的值

给定的两个数 a 和 b,在不使用第三个变量的情况下,交换 a 和 b 的值.

第一种方法:

1
2
3
x = x ^ y
y = x ^ y
x = x ^ y

第二种方法:

1
2
3
x = x + y
y = x - y
x = x - y

第三种方法:

1
2
3
x = x - y
y = x + y
x = y - x

第四种方法:

1
2
3
x = y - x
y = y - x
x = y + x

第五种方法:

1
2
3
x = x * y
y = x / y
x = x / y

第六种方法:

1
2
3
x = y / x
y = y / x
x = y * x

第七种方法:

1
2
3
x = x / y
y = x * y
x = y / x

第一种方法,最安全不会出现溢出问题.

第二种到第五种方法,可能存在溢出问题(上溢或下溢).

第六种和第七种方法,只适用于浮点数.