Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Gán giá trị biến từ hai giá trị khả thi không dùng điều kiện C++

Đề 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