描述 | 输入一个int型数据,计算出该int型数据在内存中存储时1的个数。 |
---|---|
知识点 | 字符串,查找 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入一个整数(int类型) |
输出 | 这个数转换成2进制后,输出1的个数 |
样例输入 | 5 |
样例输出 | 2 |
代码:
package com.huawei;
import java.util.Scanner;
public class Demo {
//方法一
public static int getNumber1(int input){
char[] chars = Integer.toBinaryString(input).toCharArray();
int count = 0;
for (int i = 0; i < chars.length; i++) {
if(chars[i] == '1'){
count++;
}
}
return count;
}
//方法二
public static int getNumber2(int input){
int count = 0;
while(input != 0){
count++;
input &= (input-1);
}
return count;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int input = sc.nextInt();
sc.close();
System.out.println(getNumber1(input));
System.out.println(getNumber2(input));
}
}
运行结果: