题目地址:http://ac.jobdu.com/problem.php?pid=1513

题目描述:

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

输入:

输入可能包含多个测试样例。

对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。

。n保证是int范围内的一个整数。

输出:

对应每个测试案例,

输出一个整数,代表输入的那个数中1的个数。

样例输入:
3
4
5
-1
样例输出:
1
2
32

解决方案一

#include <stdio.h>

int Count (int n){
int cnt = 0;
unsigned int flag = 1;
while (flag){
if (n & flag)
++cnt;
flag = flag << 1;
}
return cnt;
} int main(void){
int T;
int n; while (scanf ("%d", &T) != EOF){
while (T-- != 0){
scanf ("%d", &n);
printf ("%d\n", Count (n));
}
} return 0;
}

解决方案二

#include <stdio.h>

int Count (int n){
int cnt = 0;
while (n){
++cnt;
n &= (n - 1);
}
return cnt;
} int main(void){
int T;
int n; while (scanf ("%d", &T) != EOF){
while (T-- != 0){
scanf ("%d", &n);
printf ("%d\n", Count (n));
}
} return 0;
}

参考资料:何海涛 -- 程序员面试题精选100题(22)-整数二进制表示中1的个数[算法]

九度OJ 1513 二进制中1的个数的更多相关文章

  1. 剑指Offer - 九度1513 - 二进制中1的个数

    剑指Offer - 九度1513 - 二进制中1的个数2013-11-29 23:35 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: 输入可能包含多个测试样例. ...

  2. 1513:二进制中1的个数 @jobdu

    题目1513:二进制中1的个数 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:1341 解决:455 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: ...

  3. 剑指Offer面试题:9.二进制中1的个数

    一.题目:二进制中1的个数 题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2. 二.可能引起死循环的解法 一个 ...

  4. 剑指Offer:二进制中1的个数

    题目:输入一个整数,输出该数二进制表示中1的个数. // 二进制中1的个数 #include <stdio.h> int wrong_count_1_bits(int n) // 错误解法 ...

  5. 基于visual Studio2013解决面试题之0410计算二进制中1的个数

     题目

  6. Algorithm --> 二进制中1的个数

    行文脉络 解法一——除法 解法二——移位 解法三——高效移位 解法四——查表 扩展问题——异或后转化为该问题 对于一个字节(8bit)的变量,求其二进制“1”的个数.例如6(二进制0000 0110) ...

  7. [PHP]算法-二进制中1的个数的PHP实现

    二进制中1的个数: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路: 1.右移位运算>> 和 与运算& 2.先移位个然后再与1 &运算为1的就是1 ...

  8. 《剑指offer》 二进制中1的个数

    本题来自<剑指offer> 二进制中1的个数 题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 思路: 两种思路: 第一种:对n进行左移,检测最后一位是否为1,但考 ...

  9. 剑指offer编程题Java实现——面试题10二进制中1的个数

    题目: 请实现一个函数,输入一个整数,输出该整数二进制表示中1的个数.例如,把9表示成二进制是1001,有2位是1,该函数输出2解法:把整数减一和原来的数做与运算,会把该整数二进制表示中的最低位的1变 ...

随机推荐

  1. linux中文设置

    近期出现用户发邮件乱码问题,前面服务器刚刚切换过来,忘了装中文字体了. 本地调试在windows环境下,所以每次看都好的,于是我看了下linux服务器的编码,果然默认的不是中文字体,所以在生成pdf的 ...

  2. NUMBER_GET_NEXT

    1. SNRO /SNUM创建一个流水号对象 CALL FUNCTION 'NUMBER_RANGE_ENQUEUE' EXPORTING OBJECT = '' EXCEPTIONS FOREIGN ...

  3. linux 常用命令 -- 系统管理工具包: 监视邮件的使用情况

    清单 5. 获得磁盘使用情况统计信息 $ du -sk * 20 admin 1020 appleby 45828 applicants 13264 buy 11704 dev 11200 finan ...

  4. xcode6.4 7.2下载地址

    XCode 7.2 :ht tp://adcdownload.apple.com/Developer_Tools/Xcode_7.2/Xcode_7.2.dmgXCode7.1.1:ht tp://a ...

  5. python 闭包(closure)

    闭包的定义: 闭包就是一个函数,这个函数可以记住封闭作用域里的值,而不管封闭作用域是否还在内存中. 来一个例子: def happy_add(a): print 'id(a): %x' % id(a) ...

  6. hdu4081 次小生成树变形

    pid=4081">http://acm.hdu.edu.cn/showproblem.php?pid=4081 Problem Description During the Warr ...

  7. img图片下有个间隙是为什么

    转自知乎:http://www.zhihu.com/question/21558138要理解这个问题,首先要弄明白CSS对于 display: inline 元素的 vertical-align 各个 ...

  8. android中的界面编程

    主要是用View以及ViewGroup,同时ViewGroup又是View的子类,充当容器. 主要有两种方法控制view的行为: 1.在XML布局文件中通过XML属性进行控制 2.在Java代码中通过 ...

  9. 深入理解C++中的mutable关键字

      mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词. 在C++中,mutable也是为了突破const的限制而设置的.被mutable修饰的变量,将 ...

  10. Making Use of Forms and Fieldsets

    Making Use of Forms and Fieldsets So far all we have done is read data from the database. In a real- ...