仅使用两个变量交换两个数字

Kh*_*han 3 algorithm swap

它是如何进行交换的?

A = A + B

B = A + B

A = B +一

我不同意它换成书!

书中的选项包括"a和b的值的互补","否定和b".希望这些选项也不令人满意吗?

Sat*_*tya 9

正确的算法应该是:

a = a + b 
b = a - b
a = a - b 
Run Code Online (Sandbox Code Playgroud)

  • 汗,如果你已经知道这本书的引用实际上是*不*执行交换,并且你已经知道交换代码的样子,你有什么问题? (2认同)

Ja͢*_*͢ck 7

交换是使用XOR执行的,XOR通常在圆圈内写为加号; 例如:

a := 5
b := 7

a := a xor b (2)
b := a xor b (5)
a := b xor a (7)
Run Code Online (Sandbox Code Playgroud)