#include <iostream>
#include <vector>
using namespace std;
//输出数字number的二进制表示形式
//统计num1数组中的数字的二进制表示形式中各个 位 1出现的总次数;
//使用 & (位与)运算符
void digital_binary_show(vector<int> vec)
{
int* binary_arr = new int[32];
memset(binary_arr, 0, sizeof(int) * 32); //将数组初始化为0,;
for (int num : vec)
{
for (int i = 0; i < 32; ++i)
{
while (num != 0)
{
if ((num & 1) == 1) //位与运算 &
{
++binary_arr[i];
}
num = num >> 1;
++i;
}
}
}
for (int i = 0; i < 32; ++i)
{
std::cout << binary_arr[i] << " ";
}
std::cout << std::endl;
}
int main()
{
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(2);
vec.push_back(2);
vec.push_back(3);
vec.push_back(3);
vec.push_back(3);
digital_binary_show(vec);
system("pause");
return 0;
}
LeetCode统计数组中只出现一次的数字
最新推荐文章于 2022-04-24 15:57:36 发布