一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
程序员文章站
2024-02-02 15:03:40
...
#include<stdio.h>
#include<stdlib.h>
void find(int arr[], int len) {
int i = 0;
int num = 0;
int num1 = 0;
int num2 = 0;
int flag = 0;
for (i = 0; i < len; i++) {
num = num ^ arr[i];
}
for (i = 0; i < 32; i++) {
if (((num >> i) & 1) != 1) {
flag++;
}
else {
break;
}
}
for (i = 0; i < len; i++) {
if (((arr[i] >> flag) & 1) == 1){
num1 ^= arr[i];
}
else {
num2 ^= arr[i];
}
}
printf("%d %d", num1, num2);
}
int main() {
int arr[] = { 1,2,3,4,5,6,5,6,2,3 };
int len = sizeof(arr) / sizeof(arr[1]);
find(arr, len);
return 0;
system("pause");
}
推荐阅读
-
一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
-
c语言 一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
-
C语言:一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
-
一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
-
一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个数字,编程实现。
-
C语言编程实现之一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字
-
C语言编程实现之一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字
-
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次, 找出这两个只出现一次的数字。
-
一个数组中只有两个数字是出现一次的,其他的数字都出现了两次,找出这两个数字,编写程序。
-
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字