统计整数的二进制中1的个数。

最近都在牛客网刷题,有空就来写下博客,不得不说牛客网是个好地方!

  碰到这样一道题:输入一个整数,输出该数二进制表示中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!!!

没事就来写写博客哈哈哈!
原文地址:https://www.cnblogs.com/cppeterpan/p/6659704.html