题解 | #二进制中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 浙江

相关推荐

03-10 20:17
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务