您的位置:首页 > 其它

数组中只出现一次的两个数字

2014-03-11 00:41 225 查看
在一个数组中除两个数字只出现1次外,其它数字都出现了2次, 要求尽快找出这两个数字。

#include <iostream>
using namespace std;

void fun(int a[], int n)
{
int temp = 0;
for (int i = 0; i < n; i++)
{
temp ^= a[i];
}

int bitFactor = 1;
while (true)
{
if (temp & bitFactor)
{
break;
}
bitFactor <<= 1;
}

int result1 = 0;
int result2 = 0;

for (int i = 0; i < n; i++)
{
if (a[i] & bitFactor)
{
result1 ^= a[i];
}
else
{
result2 ^= a[i];
}
}

cout << result1 << " " << result2 << endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐