HJ15 求int型正整数在内存中存储时1的个数
描述
输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。
数据范围:保证在 32 位整型数字范围内
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例1
输入:
5
输出:
2
示例2
输入:
0
输出:
0
#include <iostream>
#include <bitset>
using namespace std;
/*
bitset的使用
bool operator[] (size_t pos) const; //返回第 pos 位的值
bool at (size_t pos) const; //返回第 pos 位的值
size_t count() const; //计算 1 的个数
size_t size () const; //返回总位数
bitset <N> operator << (size_t pos) const; //返回左移 pos 位后的结果
bitset <N> operator >> (size_t pos) const; //返回右移 pos 位后的结果
bitset <N> operator ~ (); //返回取反后的结果
*/
int main() {
int n;
bitset<32> count;
cin >>n;
count =n;
cout<<count.count();
}
// 64 位输出请用 printf("%lld")
#include <iostream>
#include <bitset>
using namespace std;
int main() {
int n;
cin >>n;
int count =0;
while(n){
count +=n%2;
n=n/2;
}
cout<<count;
}
// 64 位输出请用 printf("%lld")