2012-04-27 16 views

risposta

7

lascia supporre

a = 10; 
b = 20; 

a = a + b; // a = 30 

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

valori scambiati.

2

per scambiare due variabili numeriche ti piace questo

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

O

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

dove a e b sono variabili da essere scambiati

+0

Per scambiare due variabili * numeriche * –

18

Sì, è possibile:

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

Ma perché avete bisogno? Il codice diventa astruso.

+4

+1 per astruse, bella parola! – jon

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

XOR o a + b algoritmi sopra lavoro e sono il modo migliore per fare questo, ma solo un esempio di un modo strano per farlo. Ancora non sono sicuro del perché vorresti farlo. Basta creare una funzione per fornire due valori ByRef e farlo eseguire il metodo di scambio standard.

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

Buona idea, anche se 'newList' potrebbe essere considerata come terza variabile. –

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

teoricamente 3 modi

a = 4 , b = 5 

1. Utilizzo di 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. Usare +, -

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

3. Utilizzando *,/

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

Approccio 1 #.

Addizione e Sottrazione Metodo

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

Problema:

risultato errato quando somma dei numeri supererà la gamma Integer.

Approccio n.

moltiplicazione e divisione Metodo

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

Problemi:

  1. Se il valore di a * b supera l'intervallo di numeri interi.
  2. Se il valore di aob è zero, restituirà risultati errati.

Approccio n.

Metodo XOR

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

migliore approccio per risolvere questo problema senza insidie.

Problemi correlati