题解 | #求int型正整数在内存中存储时1的个数#

求int型正整数在内存中存储时1的个数

https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9

题解思路:一种是使用辗转相除法,将十进制转为二进制,在求解的过程中统计1出现的次数;一种是使用位运算,通过判断与1进行与运算的结果,来统计1出现次数

import java.util.Scanner;
public class Main {
     public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Integer line = scanner.nextInt();
        Integer count = count1NumberOfBinary1(line);
        // Integer count = count1NumberOfBinary2(line);
        System.out.println(count);
    }


     private static Integer count1NumberOfBinary1(Integer line) {
        int mod,quotient,count=0;
        while (true){
            quotient = line/2;
            mod = line%2;
            if (mod == 1)
                count++;
            if (quotient == 0)
                break;
            else{
                line = quotient;
            }
        }
        return count;
    }
}
#java##笔试刷题#
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务