2012-04-27 71 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; 

最好的辦法來解決這個問題,沒有任何缺陷。

相關問題