Bài 1: Hoán vị 2 số
Mục tiêu ở đây ta sẽ hoán đổi hai biến a và b (kiểu bất kỳ)
Phương pháp truyền thống
int a, b;
int c = a;
a = b;
b = c;
Đổi giá trị 2 biến không dùng biến trung gian
Sử dụng toán tử toán học
int a, b;
a = a + b;
b = a - b;
a = a - b;
Hoặc:
Sử dụng toán tử XOR
Với biến kiểu số nguyên, ta có thể khéo léo sử dụng toán tử đảo bit là XOR:
int a, b;
a = a ^ b;
b = a ^ b;
a = a ^ b;
Hoán đổi trên một dòng
a = b + (b = a, 0);
Vẫn là hoán đổi một dòng, nhưng dùng XOR
a = b + (b = a, 0);
https://hocjavascript.net/tong-quan/lam-the-nao-de-hoan-doi-hai-gia-tri-ma-khong-can-bien-phu-trong-javascript/
http://ngoton.it/hoan-vi-2-khong-dung-bien-tam/
https://topdev.vn/blog/hoan-doi-hai-gia-tri-ma-khong-can-bien-phu-trong-javascript/
https://nguyenvanhieu.vn/hoan-vi-2-so-trong-c/
https://codelearn.io/learning/cpp-for-beginners/528350