簡體   English   中英

該代碼的解釋是什么?

[英]What is the explanation to this code?

實際上,這是一個hackerrank問題,即孤獨的整數。 我了解這里使用的XOR邏輯。 我只是無法完全理解輸入后如何處理每個數字的概念。 我已經在代碼中標記了這一行。 請幫助我理解它。

#include <iostream>
using namespace std;

int main()
{
    int n, a, c = 0, i;
    cin >> n;
    for (i = 0; i < n; i++)
    {
        cin >> a;
        c ^= a; // THIS LINE .... i WANT TO KNOW HOW IS THIS WORKING ?
        // HOW IS COMPARISON BEING CARRIED OUT HERE ?
    }
    cout << a << endl;
    return 0;
}

程序找到一個孤獨的號碼,即不是成對的。 將數字與自己進行異或運算將得出0 使用此概念,所有數字都一一進行異或。 將一對數字異或,然后將結果與輸入序列中的另一個數字異或,依此類推。 最后,剩下的數字將被保留。
例如 :

對於輸入1 1 2 3 0 0 3

1 ^ 1 = 0
0 ^ 2 = 2 
2 ^ 3 = 1 
1 ^ 0 = 1
1 ^ 0 = 1
1 ^ 3 = 2  

2是寂寞的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM