Ho un compito nel quale ho bisogno di scambiare due interi senza usare la terza variabile. Non sono sicuro di come farlo. Come posso codificare questo?Scambia due interi senza utilizzare una terza variabile
risposta
lascia supporre
a = 10;
b = 20;
a = a + b; // a = 30
b = a - b; // b = 10
a = a - b; // a = 20
valori scambiati.
Leggere "xor swap algorithm".
È possibile trovare una risposta qui:
http://www.java2s.com/Tutorial/VB/0040__Data-Type/Swaptwointegerswithoutusingathird.htm
firstValue = firstValue Xor secondValue
secondValue = firstValue Xor secondValue
firstValue = firstValue Xor secondValue
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
Per scambiare due variabili * numeriche * –
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.
+1 per astruse, bella parola! – jon
Dim a As Integer
Dim b As Integer
a= 1
b= 2
a = a Xor b
b = a Xor b
a = a Xor b
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)
Buona idea, anche se 'newList' potrebbe essere considerata come terza variabile. –
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)
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
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:
- Se il valore di a * b supera l'intervallo di numeri interi.
- 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.
- 1. Swap valore di due variabili senza utilizzare terza variabile in php
- 2. Scambia simultaneamente due frammenti
- 3. SymPy: Scambia due variabili
- 4. Scambia due lettere in una stringa
- 5. scambia due parole in una stringa php
- 6. Scambia due elementi di un vettore in una chiamata
- 7. Scambia due oggetti in JavaScript
- 8. Scambia due bit con una singola operazione in C?
- 9. Come unire due risultati di Task in una terza attività?
- 10. Come copiare la variabile locale sulla variabile globale se entrambi hanno lo stesso nome in C senza utilizzare una terza variabile?
- 11. Utilizzare due monadi senza trasformatore
- 12. Creare un VSTRING da una variabile scalare senza utilizzare eval
- 13. l'aggiunta di due firmato o interi senza segno
- 14. Java: utilizzare DecimalFormat per formattare i doppi e gli interi ma mantenere interi senza separatore decimale
- 15. Scambia gli interi tramite XOR in una riga singola. È davvero permesso in C++ 11?
- 16. max senza diramazione per interi senza segno
- 17. Scambia caratteri nella stringa
- 18. Programma C per confrontare gli interi senza utilizzare operatori logici?
- 19. Sottraendo due numeri senza utilizzare l'operatore '-'
- 20. Quando utilizzare una variabile variabile in PHP?
- 21. valore medio di due interi
- 22. XOR di due interi brevi
- 23. Divisione Mod di due interi
- 24. Utilizzare una variabile su NavigationService.GoBack
- 25. Split intero in due interi separati
- 26. Aggiungere numeri interi come stringhe a una variabile bash
- 27. Cassandra VNodes scambia le prestazioni?
- 28. Utilizzare una variabile in una giada include
- 29. come utilizzare due AntiForgeryToken in una singola pagina senza utilizzare la proprietà
- 30. Due div sovrapposti con altezza variabile = senza altezza sul contenitore
Prova a spiegarcelo in un modo migliore e forse questo ti metterà sulla buona strada. – skyfoot