51nod 题目 \(Link\)
这里采用的是位运算异或。
让 ans 每次都异或输出的数,因为 a ^ a = 0 的, 所以每次异或时出现偶数次的数就可以消掉(异或符合交换律)。
因为题目中指定只有一个数会出现奇数次,所以易证这个做法的正确性。
#include <bits/stdc++.h> using namespace std; int ans, n; int main () { scanf ("%d", &n); for (int i = 1; i <= n; ++ i) { int t; scanf ("%d", &t); ans ^= t; } printf ("%d", ans); return 0; }