黑马程序员技术交流社区

标题: 求二进制数中1的个数如何实现? [打印本页]

作者: CesC    时间: 2015-7-21 22:52
标题: 求二进制数中1的个数如何实现?

问题:任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4

这也是一道比较经典的题目了,找工作面试的时候也可能遇到这道题,大家动动脑筋想想有没有比较好的算法。



作者: 梦想中前行    时间: 2015-7-22 00:29
定义个数组(长度足够大  可以用宏定义),初始化为0
for循环  用给定的数除分别放入数组中,直到除不尽或者不够除为止,从数组的最后一位开始放(可从头放,然后倒序数组),然后输出数组中不为0的个数.
作者: 爱马尚    时间: 2015-7-22 06:47
不会,本来想进来看看答案的
作者: 午夜码农    时间: 2015-7-22 06:54
好吧。。。楼上已经说了
作者: lclofty    时间: 2015-7-22 07:00
是先定义变量存放结果 将二进制数左移或右移 与1按位与 判断结果为1 则变量加一 最后输出变量的值即可




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2