题解 | 二进制位中1的数量

二进制位中1的数量

https://www.nowcoder.com/practice/3e392d0ed7e543f3a4ae883d1470ca9d

def popcount(n: int) -> int:
    n -= ((n >> 1) & 0x5555555555555555)
    n = (n & 0x3333333333333333) + ((n >> 2) & 0x3333333333333333)
    n = (n + (n >> 4)) & 0x0f0f0f0f0f0f0f0f
    n += ((n >> 8) & 0x00ff00ff00ff00ff)
    n += ((n >> 16) & 0x0000ffff0000ffff)
    n += ((n >> 32) & 0x00000000ffffffff)
    return n & 0x7f

print(popcount(int(input())))

全部评论

相关推荐

11-06 23:30
已编辑
华中师范大学 后端工程师
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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