思路:由于每次只生产2、4、8个零件,有一个没有编号,那么那个编号一定出现了奇数次。可以先排个序,再统计每个编号出现的次数。当然还有更简单的方法,利用异或运算的性质,如果异或某个数字偶数次则相当于没有异或这个数,所以把所有编号异或起来的结果就是那个奇数次的编号。
AC代码:
1 #include <cstdio> 2 3 int main() 4 { 5 int n; 6 while (~scanf("%d", &n)) 7 { 8 int ans = 0, v; 9 for (int i = 0; i < n; i++) 10 scanf("%d", &v), ans ^= v; 11 printf("%d\n", ans); 12 } 13 return 0; 14 }