链接:查找输入整数二进制中1的个数__牛客网
来源:牛客网
[编程题]查找输入整数二进制中1的个数
- 热度指数:94667 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
输入一个正整数,计算它在二进制下的1的个数。
注意多组输入输出!!!!!!
数据范围: 1≤n≤231−1 1 \le n \le 2^{31}-1 \ 1≤n≤231−1
输入描述:
输入一个整数
输出描述:
计算整数二进制中1的个数
示例1
输入
5输出
2说明
5的二进制表示是101,有2个1示例2
输入
0输出
0
可以把输入的数字变成二进制之后再转化为字符串
- 使用split("0")分割后存放到字符串数组arr,遍历字符串数组,count += arr[i].length();
注意多组输入输出!!!!!!
使用 while(sc.hasNext()){}
全部代码
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
String str = (String)Integer.toString(n,2);
String[] arr = str.split("0");
int count = 0;
for(int i = 0;i < arr.length;i++){
count += arr[i].length();
}
System.out.println(count);
}
}
}