一、题目描述
输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。
数据范围:保证在 32 位整型数字范围内
二、输入描述
输入一个整数(int类型)
三、输出描述
这个数转换成2进制后,输出1的个数
四、测试用例
测试用例1
1、输入
7
2、输出
3
3、说明
7 的二进制表示为 111,有三个 1。
测试用例2
1、输入
1023
2、输出
10
3、说明
1023 的二进制表示为 1111111111(10 个1),其余位均为0。
五、解题思路
- 从输入中读取一个整数num;
- 初始化计数变量n为0;
- 使用循环从二进制表示的最低位开始判断每一位:
- 如果num的末位是1,表示当前位为1,将计数变量n加1; <
该博客介绍了如何用Java解决华为OD机试中的一个问题:输入一个32位整数,计算其在内存中存储时1的个数。解题思路包括从输入读取整数,初始化计数器,通过循环检查二进制表示的每一位,对每位为1的情况增加计数,最后输出1的个数。提供了完整的Java算法源码和效果展示。
订阅专栏 解锁全文
938

被折叠的 条评论
为什么被折叠?



