在不使用第三个变量的情况下交换两个整数

eme*_*ald 8 vb.net algorithm

我有一个赋值,我需要在不使用第三个变量的情况下交换两个整数.我不知道该怎么做.我该如何编码呢?

Tim*_*ter 18

是的,这是可能的:

Dim var1 = 1
Dim var2 = 2
var1 = var1 + var2
var2 = var1 - var2
var1 = var1 - var2
Run Code Online (Sandbox Code Playgroud)

但你为什么需要呢?代码变得深奥.


Pau*_*haw 7

让我们假设

a = 10; 
b = 20; 

a = a + b; // a = 30

b = a - b; // b = 10
a = a - b; // a = 20
Run Code Online (Sandbox Code Playgroud)

交换价值.


jon*_*jon 5

阅读" xor交换算法".

你可以在这里找到答案:

http://www.java2s.com/Tutorial/VB/0040__Data-Type/Swaptwointegerswithoutusingathird.htm

firstValue = firstValue Xor secondValue
secondValue = firstValue Xor secondValue
firstValue = firstValue Xor secondValue
Run Code Online (Sandbox Code Playgroud)