Java题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
描述
输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。
数据范围:保证在 32 位整型数字范围内
输入描述:输入一个整数(int类型)
输出描述:这个数转换成2进制后,输出1的个数
解法
这里考察是的10进制转2进制,以及对给定字符的个数统计。
/*
* Copyright (c) waylau.com, 2022. All rights reserved.
*/
package com.waylau.nowcoder.exam.oj.huawei;
import java.util.Scanner;
/**
* HJ15 求int型正整数在内存中存储时1的个数.
* 描述:输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。
* 数据范围:保证在 32 位整型数字范围内
* 输入描述:输入一个整数(int类型)
* 输出描述:这个数转换成2进制后,输出1的个数
*
* @author <a href="https://waylau.com">Way Lau</a>
* @since 2022-08-07
*/
public class HJ15FindTheNumberOfOneWhenIntegersStoredInMemory {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 输入整数
Integer in = sc.nextInt();
// 转为二进制
String bStr = Integer.toBinaryString(in);
// 统计1的个数
int count = 0;
for (int i = 0; i < bStr.length(); i++) {
char c = bStr.charAt(i);
if (c == '1') {
count++;
}
}
System.out.println(count);
// 关闭资源
sc.close();
}
}
运行程序输出结果如下:
5
2
参考引用
- 本系列归档至https://github.com/waylau/nowcoder-exam-oj
- 《Java 数据结构及算法实战》:https://github.com/waylau/java-data-structures-and-algorithms-in-action
#华为机考#

查看7道真题和解析