LintCode 题目:二进制中有多少个1

URL:https://www.lintcode.com/problem/count-1-in-binary/description

描述

计算在一个 32 位的整数的二进制表示中有多少个 1

您在真实的面试中是否遇到过这个题?  

样例

样例 1:

输入:32
输出:1
解释:
32(100000),返回 1。

样例 2:

输入:5
输出:2
解释:
5(101),返回 2。

1.通过率:76%

原因:未考虑到负数

在代码段中添加:

char arr[100];
        int i,j=0,tmp,count = 0;
        while(num!=0){
            tmp = num%2;
            arr[j++] = tmp+'0';
            num = num/2;
        }
        if(j==0)
		    arr[j++]='0';
		for(i=j-1;i>=0;i--){
    		if(arr[i]=='1')
    		    count++;
	    }
	    return count;

运行结果:

发布了303 篇原创文章 · 获赞 550 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_42410605/article/details/103103534