【每日一题】Day15-1 编程题 查找输入整数二进制中1的个数

链接:查找输入整数二进制中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);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习java的张三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值