题解 | #查找输入整数二进制中1的个数#

查找输入整数二进制中1的个数

https://www.nowcoder.com/practice/1b46eb4cf3fa49b9965ac3c2c1caf5ad

与运算时,n=(1,2,4,8)时,这些数与任何数进行计算时,只要最高位是1。计算后得到的值即为n。根据这个特性可以直接把所有符合条件的查出来。

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            
            // 比较的值
            int count=0;
            for (int i=0;i<=31;i++) {
                int pow=(int)Math.pow(2,i);
                // 进行与运算,如果相等,表示a的当前位置等于1
                if ((a & pow)==pow) {
                    count++;
                }
            }
            System.out.println(count);
        }
    }
}

全部评论

相关推荐

08-15 11:13
门头沟学院 Java
感觉还行,题多但不难
投递米哈游等公司8个岗位
点赞 评论 收藏
分享
06-26 17:24
已编辑
宁波大学 golang
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务