华为机试-HJ15 求int型正整数在内存中存储时1的个数

79 阅读1分钟

题目

image.png

www.nowcoder.com/practice/44…

我的题解

import java.util.*;
import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while ((str = bf.readLine()) != null) {
            int num = Integer.parseInt(str);
            String binaryStr = Integer.toBinaryString(num);
            int total = 0;
            for (int i = 0; i < binaryStr.length(); i++) {
                if (binaryStr.charAt(i) == '1') {
                    total++;
                }
            }
            System.out.println(total);
        }

    }
}

image.png

总结:

1、 String binaryStr = Integer.toBinaryString(num); 关键点