服务器可以做网站吗,wordpress到底是什么,那家公司做网站,网站上papi酱做的音频这个题目会有多个解法#xff1a;需要判断n的二进制有几个1first#xff1a;通过n向右移位1#xff0c;如果n的最后为1#xff0c;那么与1结果为1#xff0c;(相信大家都会与运算#xff0c;hashmap就是用与运算)以此来实现#xff0c;循环判断有多少个1#xff0…这个题目会有多个解法需要判断n的二进制有几个1first通过n向右移位1如果n的最后为1那么与1结果为1(相信大家都会与运算hashmap就是用与运算)以此来实现循环判断有多少个1结束条件为n0second上述方法有一个缺陷就是当n为有符号数字时才用n0的结束条件会发生死循环那么我们可以通过移位1来实现也就是有每次比较去把1向左移一次来比较前两种属于常规做法下面来说一种技巧性的做法比如n1001每次将n-1那么第一次就是1000使用n(n-1)→100110001000这是第一次计算第二次100001110两次运算而1001中有两个1 如果看不懂的可以自己写写感受下就能体会了上代码public void showOne(int n){if(n0){System.out.println(0);return;}int count0;while(n!0){count;nn(n-1);}System.out.println(count);}出处来自剑指offer