题解 | 二进制位中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())))

全部评论

相关推荐

立枫:整体内容太多了,实习经历太少了,以及格式行间距不统一
0offer是寒冬太冷还...
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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