HTML/JavaScript小工具

HTML/JavaScript小工具

2021年4月7日 星期三

xor應用 去除重複 與swap

 例題假設陣列內只有一個重複的元素幫我找出來

int a[6] = {1,2,3,5,4,5};
int x = 0,ans=0;

for (int i = 1;i<=5;i++){
x ^= i;//產生一組所有數字的xor
}
for (int i = 0;i <6;i++){
ans =a[i]^x; //去除重複的xor
x = ans;
}
cout << ans;

 Swap(交換變數)
    int a = 10;
    int b = 20;
    int x = a ^ b;
    a = x ^ a;
    b = x ^ b;
    cout << a  << b;
陣列當中只有一組不兩兩重複 請找出不兩重複的數值
    int v[11] = {1,1,2,2,3,4,4,5,5,6,6};
    int m = 0;
    for(int i = 0;i < 11;i++){
        m ^=v[i] ;
    }
    cout << m << '\n';

沒有留言:

張貼留言