问题描述
解题分析
代码实现
#include<stdio.h>
void find_single_dog(int arr[], int sz)
{
int dog1 = 0;
int dog2 = 0;
int num = 0;
int i;
for (i = 0; i < sz; i++)
{
num ^= arr[i];
}
for (i = 0; i < 32; i++)
{
if (((num >> i) & 1) == 1)
{
break;
}
}
for (int j = 0; j < sz; j++)
{
if (((arr[j] >> i) & 1 )== 1)
{
dog1 ^= arr[j];
}
}
dog2 = num ^ dog1;
printf("%d %d",dog1, dog2);
}
int main()
{
int arr[] = { 1,2,3,4,5,1,2,3,4,7 };
int sz = sizeof(arr) / sizeof(arr[0]);
find_single_dog(arr, sz);
return 0;
}