标签:
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
int check_along_num(int *arr,int len)
{
assert(arr);
int bit[32] = { 0 };
int i = 0;
int j = 0;
int ret = 0;
for (i = 0; i < len;i++)
{
for (j = 0; j < 32;j++)
{
bit[j] += ((arr[i] >> j)&1); //统计数组中所有元素每一位上1的个数之和
}
}
for (i = 0; i < 32;i++)
{
ret+=((1<<i)&((bit[i] % 3)<<i)); //出现三次的数,在bit[]中对应位上是3的倍数
}
return ret;
}
int main()
{
int arr[10];
for (int i = 0; i < 10;i++)
{
scanf("%d",&arr[i]);
}
int sz = sizeof(arr)/sizeof(arr[0]);
int ret=check_along_num(arr,sz);
printf("%d\n",ret);
system("pause");
return 0;
}标签:
原文地址:http://blog.csdn.net/lf_2016/article/details/51626240