C语言- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现。
2017-11-16 09:32
771 查看
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。
代码实现(环境:Visual Studio 2017)
代码实现(环境:Visual Studio 2017)
//一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 //找出这两个数字,编程实现。 #include <stdio.h> #include <stdlib.h> void find(int a[], int sz) { int i = 0; int num1 = 0; int num2 = 0; int num = 0; int flag = 0; for (i = 0; i < sz; i++) { num = num^a[i]; } for (i = 0; i < 32; i++) { if (((num >> i) & 1) != 1)//找异或之后这个数字二进制数中最先出现的1的位置 { flag++; } else break; } for (i = 0; i < sz; i++) { if (((a[i] >> flag) & 1) == 1)//分成2组 num1 ^= a[i]; else num2 ^= a[i]; } printf("%d %d\n", num1, num2); } int main() { int a[] = { 1, 2, 2, 6, 6, 4, 4, 5, 8, 5 }; int sz = sizeof(a) / sizeof(a[0]); find(a, sz); system("pause"); return 0; }
相关文章推荐
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现
- 1.求第n个斐波那契数(非递归实现)。 2.一个数组中只有两个数字是出现一次,其他所有数字都出现 了两次。 找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- .一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现
- 【C语言】一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字!
- 一个数组中只有两个数字是出现一次,其他所有数字都成对出现,找出这两个数字,编程实现
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这个数字
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。
- 一个数组只有两个数字出现一次,其他数字都出现两次,找出这两个数
- 编程实现: 一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。 请找出这个数字。(使用位运算)