题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例1
输入
复制
5
输出
复制
2
#include <iostream>
#include <map>
using namespace std;
int main()
{
int num;
cin >> num;
map<int, int> m;
while (num > 0)
{
int x = num % 2;
if (m[x])
{
m[x] += 1;
}
else
{
m[x] = 1;
}
num /= 2;
}
cout << m[1] << endl;
system("pause");
return 0;
}
思路:利用map的特性,当key不存在时,给map[key]置为1,否则在map[key]的基础上加1