int singleNumber(int A[], int n)
{
const int W = sizeof(int) * 8; // 整数字长
int count[W]; // 每个位上1 出现的次数
fill_n(&count[0], W, 0);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < W; j++)
{
count[j] += (A[i] >> j) & 1;
count[j] %= 3;
}
}
//展示数组中的结果
for(int i = W-1; i >= 0; i--)
{
cout<<count[i];
}
cout<<endl;
int result = 0;
for (int i = 0; i < W; i++)
{
result += (count[i] << i);
}
return result;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交