繁体   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