题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例1
输入
5
输出
2
//最快最省内存方式 public static void main(String[] args) throws Exception { InputStream stream = System.in; int l ; byte[] bytes = new byte[1024]; while ((l = stream.read(bytes)) > 0) { String numStr = new String(bytes, 0, l - 1); int num = Integer.parseInt(numStr); int count = 0; while(0 != num){ if(num % 2 == 1){ count++; } num = num / 2; } System.out.println(count); } }
public static void main(String[] args) { Scanner in = new Scanner(System.in); int i = in.nextInt(); in.close(); int count = 0; //十进制转二进制方法 String s = Integer.toBinaryString(i); String[] str = s.split(""); for (int j = 0; j < str.length; j++) { if ("1".equals(str[j])){ count++; } } System.out.println(count); }
public static void main(String[] args) { Scanner in = new Scanner(System.in); int i = in.nextInt(); in.close(); int count = 0; //十进制转二进制算法 while (0 != i) { if (i % 2 == 1) { count++; } i = i / 2; } System.out.println(count); }