位运算(二进制中1的个数)
这个题要求二进制中一的个数,Integer当中有一个方法可以直接统计,自己写的话就是用按位与,这里和1按位与然后累加,注意这里整数分正负。
所以while循环判断n进入死循环了。
//package com.js.datastructure.recursion.蓝桥;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);long x = scanner.nextLong();int ans = 0;for(int i = 0; i < 32; i++){ans+=x&1;x = x>>1;}/*while(true){if(x==0){break;}else{ans+=x&1;x = x>>1;}}*/System.out.println(ans);}}