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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            int a = sc.nextInt();
            int count = 0;
            
            // 直接计算a的二进制表示中1的个数
            while (a > 0) {
                count += a & 1; // 检查最低位是否为1
                a >>= 1;        // 右移一位
            }
            
            System.out.println(count);
        }
        sc.close(); // 关闭Scanner对象以释放资源
    }
}
//原始暴力代码
import java.util.Scanner;

public class HJ62 {
    public static void main(String[] args) {
        System.out.println();
         Scanner sc = new Scanner(System.in);
         while (sc.hasNextInt()) {
         int a=sc.nextInt();
         int [] arr=new int [a];
        int i=0;
         while(a>=1){
             arr[i]=a%2;
             a=a/2;
             i++;
         }
        int count=0;
         for(int j=0;j<i;j++){
             if(arr[j]==1){
                 count ++;
             }
         }
        System.out.println(count);

    }
}
}

全部评论

相关推荐

01-15 22:54
武汉大学 Java
点赞 评论 收藏
分享
2025-12-25 16:26
已编辑
河北科技学院 Java
勇敢的牛油不服输:2800-300那不等于2500一个月吗兄弟们
点赞 评论 收藏
分享
01-16 21:34
武汉大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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