NowCode:HJ15 求int型正整数在内存中存储时1的个数

题目: 求int型正整数在内存中存储时1的个数

描述

输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。

数据范围:保证在 32 位整型数字范围内

输入描述:

输入一个整数(int类型)

输出描述:

这个数转换成2进制后,输出1的个数

示例1

1
2
3
4
5
输入:
5

输出:
2

示例2

1
2
3
4
5
输入:
0

输出:
0

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;

int main() {
int num = 0;
cin >> num;
int count = 0;
for (int i = 0; i <= 31; i++) {
count += (num >> i) & 1;
}
cout << count;
}
// 64 位输出请用 printf("%lld")

思路

进制相关,本题用按位与解的。 也可以使用取余、除法来计算

此题挺好