输入一个int,输出其二进制数中1的个数

深感自己的逻辑思维略差,知识面略窄,于是最近开始着手练习刷nowcoder,提升一下自己。

首先挑一个通过率高的算法题试试,题目是 “ 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数 ”。嗯,首先想到的是对2取余,计数++, 然后没有通过,焦灼...

经查阅,java有一个厉害的方法,Integer.toBinaryString(19934318); 这个方法可以直接将一个int对应的二进制数,然后,你可以遍历该方法返回的二进制String.

完整代码如下:

import java.util.Scanner;

public class Main{

    public static void main(String args[]){

        int n=0;

        Scanner sc = new Scanner(System.in);

        while(sc.hasNextInt()){

            int num = sc.nextInt();

            String str=Integer.toBinaryString(num);

            for (int i = 0; i < str.length(); i++) {

            if ('1'  ==str.charAt(i)) {

                n++;

            }else {

                continue;

            }

        }

        }

        System.out.println(n);

    }

}

你可能感兴趣的:(输入一个int,输出其二进制数中1的个数)