PHP 输入一个整数,求该整数的二进制表达中有多少个1
2012-10-02 19:13
274 查看
<?php #计算某个二进制数共有几个1 #例如十进制11 = 二进制1011,则结果是3个1 #解题思路:利用 n & (n - 1) 可以将最后一个1变0 # xxxx1000 & (xxxx1000 - 1) = xxxx1000 & xxxx0111 = xxxx0000 # 1011 & (1011 - 1) = 1011 & 1010 = 1010 #直到最后一个1被与为0,得出结果 function count1($n) { $r = 0; while ($n != 0) { $r++; $n &= ($n - 1); } return $r; } echo count1(11); ?>
相关文章推荐
- 【微软100题】输入一个整数,求该整数的二进制表达中有多少个1
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 28.整数的二进制表示中1的个数 题目:输入一个整数,求该整数的二进制表达中有多少个1。 例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 【微软100题】输入一个整数,求该整数的二进制表达中有多少个1
- 每天学习一算法系列(26)(输入一个整数,求该整数的二进制表达中有多少个1)
- 输入一个整数,求该整数的二进制表达中有多少个1
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- Java算法总结:输入一个整数,求该整数的二进制表示中有多少个1
- 4.编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 1.写一个函数返回参数二进制中1的个数2.获取一个数二进制序列中所有的偶数为和奇数位,分别输出二进序列3.输出一个整数的每一位4.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(b
- 1.编程实现: 两个int(32位)整数m和n的二进制表达中, 有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 10--输入一个十进制的整数,转化为二进制,输出有多少个1
- 输入一个整数,求该整数的二进制表示中有多少个1
- 1.输出一个整数的每一位。2. 编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 输出一个整数的每一位。两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 如何获得一个整数的二进制表达中有多少个1?
- 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 1.写一个函数返回参数二进制中 1 的个数;2..获取一个数二进制序列中所有的偶数位和奇数位;3. 输出一个整数的每一位;4.两个int整数的二进制表达中,有多少个位不同
- 【C语言】【笔试题】两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
- 请给出一个算法,使之对于给定的介于0到k之间的n个整数进行预处理,并能在O(1)时间内,回答出输入的整数中有多少个落在区间[a..b]内,你给出的算法上预处理时间应是O(n+k)。