LintCode-365.二进制中有多少个1
2017-05-04 13:37
260 查看
二进制中有多少个1
计算在一个 32 位的整数的二进制表式中有多少个 1.
样例
给定 32 (100000),返回 1给定 5 (101),返回 2
给定 1023 (111111111),返回 9
挑战
If the integer is n bits with m 1 bits. Can you do it in O(m) time?标签
二进制 比特位操作code
class Solution { public: /** * @param num: an integer * @return: an integer, the number of ones in num */ int countOnes(int num) { // write your code here int num_bit[32]={0}; int one_count = 0; int i,num2 = num; // 负数转正,符号位变1 if(num < 0) { num = num * -1; num_bit[31] = 1; } // 十进制转二进制 for(i=0; num; i++) { num_bit[i] = num%2; num /= 2; } // 负数原码转补码 if(num2 < 0) { for(i=30; i>=0; i--) { if(num_bit[i] == 1) break; num_bit[i] = 1; } } for(i=0; i<32; i++) { if(num_bit[i] == 1) one_count++; } return one_count; } };
相关文章推荐
- LintCode(容易)365.二进制中有多少个1(正确版)
- LintCode - 365.二进制中有多少个1
- [LintCode] 最多有多少个点在一条直线上
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- lintcode 容易题:Count 1 in Binary 二进制中有多少个1
- LintCode:最多有多少个点在一条直线上
- 【算法09】整数的转换成2进制有多少个1
- 在多少进制的计算下,可以让圆周率和黄金分割点变成该进制下的有理数?
- [LintCode 382]给定一个整数数组,在该数组中,寻找三个数,分别代表三角形三条边的长度,问,可以寻找到多少组这样的三个数来组成三角形?
- lintcode-有多少个点在同一条直线上-186
- 整数的转换成2进制有多少个1
- LintCode:最多有多少個點在一條直綫上
- lintcode(186)最多有多少个点在一条直线上
- LintCode-剑指Offer-(365)二进制中有多少个1
- lintcode--二进制有多少个1
- 关于两个数相乘, 求其为多少进制
- lintcode 中等题:Max Points on a Line 最多有多少个点在一条直线上
- 【LintCode】最多有多少个点在一条直线上
- 最多有多少个点在一条直线上-LintCode
- 公司笔试题——统计10进制数中的二进制值有多少个1