题解 | #二进制中1的个数#

二进制中1的个数

http://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8

思路:分大于0小于0两种情况判断

1、> 0, 统计1的个数 2、< 0, 转成正数,统计0的个数,32-0的个数

class Solution:
    def NumberOf1(self , n: int) -> int:
        # write code here
        
        if n == 0:
            return 0
        
        result = 0
        
        if n > 0:
            while n:
                if n % 2 == 1:
                    result += 1
                    
                n = n // 2
                
            return result
        else:
            n = -n
            while n:
                if n % 2 == 0:
                    result += 1
                    
                n = n // 2
                
            return 32 - result
全部评论
这样不对 -15的话为你求出来还是32个1
点赞 回复 分享
发布于 2022-12-22 16:48 浙江

相关推荐

李橙子:结果虽不够理想,但过程本身已是宝贵的淬炼。能把学习机会放在薪酬之前,证明你目光长远。先踏实进去,用这段时间扎实学好Python后端,把公司项目吃透,你的价值会在下一份工作中完全体现。这个起点,值得。
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务