一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
程序员文章站
2024-02-02 14:51:22
...
一个数组中只有两个数字是出现一次,
其他所有数字都出现了两次。
找出这两个数字,编程实现。
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void find_data(int *arr, int size) {
assert(arr != NULL);
assert(size != NULL);
int i = 0,j = 0;
int x = 0, y = 0;
int result = 0;
int flag = 1;
for (; i < size; ++i) {
result ^= arr[i];
}
for (i = 0; i < 32; ++i) {
if (result & (flag <<= 1)) {
break;
}
}
for (i = 0; i < size; ++i) {
if (arr[i] & flag) {
x ^= arr[i];
}
else {
y ^= arr[i];
}
}
printf("%d %d", x, y);
}
int main() {
int arr[] = { 1,2,3,4,5,6,7,32,20,7,6,5,4,3,2,1 };
int size = sizeof(arr) / sizeof(arr[0]);
find_data(arr, size);
system("pause");
return 0;
}
上一篇: php function_exists函数问题,重复定义函数
下一篇: php 基础有关问题!
推荐阅读
-
一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
-
C语言编程实现之一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字
-
C语言编程实现之一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字
-
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次, 找出这两个只出现一次的数字。
-
一个数组中只有两个数字是出现一次的,其他的数字都出现了两次,找出这两个数字,编写程序。
-
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
-
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
-
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。...
-
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
-
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。