题目:
给定一个整数,正负均可能,将该数字的二进制表示中的1的个数统计一下输出,题目很简单,目的是练习一下,如:输入10输出应该为2
下面是具体的实现:
package offer;
/*
*
Author:沂水寒城
Scanner常见用法:
delimiter()返回此 Scanner 当前正在用于匹配分隔符的 Pattern。
hasNext()判断扫描器中当前扫描位置后是否还存在下一段。(原APIDoc的注释很扯淡)
hasNextLine()如果在此扫描器的输入中存在另一行,则返回 true。
next()查找并返回来自此扫描器的下一个完整标记。
nextLine()此扫描器执行当前行,并返回跳过的输入信息。
*/
import java.util.Scanner;
public class Test10 {
public static int oneNums(int num){
num=num>0?num:-num;
int count=0;
while(num!=0){
int mod=num%2;
if (mod==1)
count++;
num/=2;
}
return count;
}
public static void main(String [] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数字:");
int num=sc.nextInt();
int count=oneNums(num);
System.out.println("该数字的二进制中1的个数为:"+count);
}
}
结果如下:
请输入一个数字:10
该数字的二进制中1的个数为:2
请输入一个数字:15
该数字的二进制中1的个数为:4
请输入一个数字:256
该数字的二进制中1的个数为:1
请输入一个数字:100
该数字的二进制中1的个数为:3