题目描述
给定一个数组,除了一个数出现1次之外,其余数都出现2次。找出出现一次的数。
如:{1, 2, 1, 2, 1, 2, 7}, 找出7。
输入描述
第一行输入一个数 n,代表数组的长度,接下来一行输入 n 个整数,表示数组 A[n]。
输出描述
输出只出现一次的数。
输入样例
4 0 0 5 5 7
输出样例
7
题目分析
把数组中所有的数字都异或起来,则每对相同的数字都会得0,然后最后剩下来的数字就是那个只有1次的数字。
测试代码
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main(void) 5 { 6 int n, i, *arr; 7 8 scanf("%d", &n); 9 arr = (int *)malloc(n * sizeof(int)); 10 scanf("%d", arr); 11 for(i = 1; i < n; i++) 12 { 13 scanf("%d", arr + i); 14 arr[0] ^= arr[i]; 15 } 16 printf("%d\n", arr[0]); 17 18 free(arr); 19 return 0; 20 }
时间: 2024-10-10 14:53:52