算法刷题-查找输入整数二进制中1的个数-JAVA

0x00 引言

为获取一个良好的算法思维,以及不再成为一个脚本小子,争取每天一道算法题,培养自己的逻辑思维,温顾各类型语言语法知识。

题解只写自己理解的解法,其他解法不再增加。题目与解析均在代码里面。

0x01 难度等级

简单

0x02 代码

package 简单;

import java.util.Scanner;

/*
* 输入一个正整数,计算它在二进制下的1的个数。
注意多组输入输出!!!!!!
* 多了个多组输入输出
*
示例1
输入:
5
输出:
2

说明:
5的二进制表示是101,有2个1
*
* */
public class 查找输入整数二进制中1的个数 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()){
            int b = sc.nextInt();
            String s = Integer.toBinaryString(b);
            int count = 0;
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == '1') {
                    count++;
                }
            }
            System.out.println(count);
        }
    }
}

0x03 算法思想

(1)JAVA int的包装类Integer有自带的把string转换为二进制形式的方法

(2)charAt()的使用,是表示一个字符一个字符的读取的含义。如果为1就count++,最后输出1的个数

(3)因为题目要多组输入输出,所以使用sc.hasNextInt()进行判断

0x04 运行结果

posted @ 2023-02-28 21:57  铺哩  阅读(26)  评论(0编辑  收藏  举报