Đề bài
Cho biến a có giá trị là x hoặc y. Gán cho a giá trị còn lại (nếu a=x thì a=y, ngược lại a=x) không dùng toán tử điều kiện.
Giải pháp 1: Toán tử số học
a = x + y - a (hoặc a = x * y / a, nhưng nhân/chia tốn kém và dễ tràn số)
#include <iostream>
using namespace std;
int main() {
int x = 45, y = 5;
int a = x;
cout << "Gia tri ban dau: " << a;
a = x + y - a;
cout << "\nGia tri sau doi: " << a;
}
Kết quả: 45 → 5
Giải pháp 2: Toán tử XOR bitwise
a = x ^ y ^ a (hiệu quả hơn, không lo tràn số)
#include <iostream>
using namespace std;
int main() {
int x = 56, y = 78;
int a = x;
cout << "Gia tri ban dau: " << a;
a = x ^ y ^ a;
cout << "\nGia tri sau doi: " << a;
}
Kết quả: 56 → 78