2012-04-27 44 views

回答

7

让我们假设

a = 10; 
b = 20; 

a = a + b; // a = 30 

b = a - b; // b = 10 
a = a - b; // a = 20 

价值交换。

2

交换两个数值型变量做这样

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

OR

a = a xor b; 
b = a xor b; 
a = a xor b; 

其中a和b是变量要交换

+0

交换两个*数字*变量 – 2012-04-27 12:26:51

18

是的,这是可能的:

Dim var1 = 1 
Dim var2 = 2 
var1 = var1 + var2 
var2 = var1 - var2 
var1 = var1 - var2 

但你为什么需要它?代码变得深奥。

+4

+1为深奥,好词! – jon 2012-04-27 12:01:50

3
Dim a As Integer 
Dim b As Integer 
a= 1 
b= 2 

a = a Xor b 
b = a Xor b 
a = a Xor b 
0

异或以上工作+ B算法,并做到这一点的最好办法,但只是一个奇怪的方式做到这一点的例子。仍然不确定你为什么想要这样做。只需构建一个函数,您可以提供两个值ByRef并让它执行标准交换方法。

Dim newList as New List(Of Integer) 
newList.Add firstvalue 
newList.Add secondValue 
newList.Reverse 
secondValue = newList.Item(0) 
firstValue = newList.Item(1) 
+1

好主意,虽然'newList'可能被认为是第三个变量。 – 2012-09-25 19:08:30

0
Take two text boxes and a command box.In command box type this code. 
    text1.text=val(text1.text) + val(text2.text)  
    text2.text=val(text1.text) - val(text2.text) 
    text1.text=val(text1.text) - val(text2.text) 
0
理论上

3种方式

a = 4 , b = 5 

1.使用XOR

a = a XOR b = 4 XOR 5 = 9  
b = a XOR b = 9 XOR 5 = 4 
a = a XOR b = 9 XOR 4 = 5 

2.使用+, -

a = a+b = 4+5 = 9  // should not overflow 
b = a-b = 9-5 = 4 
a = a-b = 9-4 = 5 

3.使用*,/

a = a*b = 4*5 = 20 // should not overflow 
b = a/b = 20/5 = 4 // should not overflow and should not be irrational number 
a = a/b = 20/4 = 5 // should not overflow and should not be irrational number 
0

Check link written for you

方法1#。

加减法

Integer a, b 
read a and b 
a= a+b; 
b=a-b; 
a=a-b; 

问题:

不正确的结果,当数字总和会超过整数范围。

方法#2。

乘法和除法方法

Integer a, b 
read a and b 
a=a*b; 
b=a/b; 
a=a/b; 

问题:

  1. 如果A * B的值超过整数的范围内。
  2. 如果a或b的值为零,则会给出错误的结果。

方法#3。

XOR方法

Integer a , b 
read a and b 
a=a^b; 
b=a^b; 
a=a^b; 

最好的办法来解决这个问题,没有任何缺陷。

相关问题