最近都在牛客网刷题,有空就来写下博客,不得不说牛客网是个好地方!
碰到这样一道题:输入一个整数,输出该数二进制表示中1的个数。
java语言挺好的,毕竟封装了这么多库,很多现有的函数,刷题也是666。
废话不说,输入整数,可将其先转换为二进制,然后再进行统计1的个数。
下面贴出代码:
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner in = new Scanner(System.in);
while(in.hasNextInt()){ //多组数据输入
int n = in.nextInt();
int count = 0;
char ch[] = Integer.toBinaryString(n).toCharArray(); //将n转换为二进制字符串,再转为字符数组
for(int i=0;i<ch.length;i++){
if(ch[i]=='1'){
count++; //统计1的个数,注意是单引号
}
}
System.out.println(count);
}
}
}
写个博客怎么感觉有点写日记的感觉,话说小学时候还是挺喜欢写日记的!虽然每天记流水账,还总有种要被老师夸的赶脚!
其实也可以这样-->
Integer.toBinaryString().replace("0","").length();
转为二进制字符串后,调用replace()将"0"换为"",其实就相当于把0去掉,那剩下的全都是1了,再调用length()就可以统计出1的个数了。
新思路get!!!