Ma uitam peste subiectele de la proba scrisa de la UVT si mi-a sarit in ochi un exercitiu: ex 4c)
Mai exact sa se interschimbe valorile a doua variabile(swap ca sa zic asa),fara sa se foloseasca o variabila aditionala(presupum ca se refere la o a treia variabila/unu auxiliara),se poate asa ceva?Sau nu am inteles eu bine…
1 Like
Se poate cu un simplu XOR repetat:
a = 11, b = 3
a = a ^ b
b = a ^ b
a = a ^ b
//la final a = 3, b = 11
Daca tin bine minte, trebuie doar ca unul din numere sa nu fie 0.
a = a + b;
b = a - b;
a = a - b;
3 Likes
Solutia asta ar fi valabila doar pentru valori numerice, nu?
Edit: scuze, subiectul spune “variabile intregi”, deci mi-am raspuns singur
1 Like
@tibs: am senzatia ca e o problema cu varianta cu operatii aritmetice daca apare overflow, de exemplu ce se intampla daca a + b > 2^32
?
1 Like
Operatii cu numere mari, transformi numerele intr-un array de cifre cu dimensiune dinamica si implementezi operatii pe +, - pe aceste structuri de date.