题目描述
描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
题解
通过包装器的Integer.toBinaryString()把int整数转为字符串形式二进制形式,通过把1替换为""可以知道没有1时的二进制形式的长度。
运行时间:36ms
超过48.77% 用Java提交的代码
占用内存:10724KB
超过13.22%用Java提交的代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()) {
int input = in.nextInt();
int output = CountOne(input);
System.out.println(output);
}
}
public static int CountOne(int a) {
int count = 0;
String str = Integer.toBinaryString(a);
count = str.length() - str.replace("1", "").length();
return count;
}
}