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

相关推荐

不愿透露姓名的神秘牛友
04-07 12:50
已编辑
点赞 评论 收藏
分享
04-03 09:32
已编辑
华南农业大学 golang
我的代码出BUG了:"晚点发个邮件调整一下时间",你收到新的邮件没,如果没有收到新的邮件,那就需要进入面试链接留痕,否则系统会判定你迟到
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

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