从1到n个数二进制下1的个数之和(n很大)
时间: 2024-06-15 18:02:58 浏览: 128
真-模拟赛----全是模拟!!
从1到n个数二进制下1的个数之和可以通过位运算来计算。我们可以遍历每个数,统计每个数二进制中1的个数,并将其累加起来。
以下是一种实现方式:
```python
def countBits(n):
count = 0
for i in range(1, n+1):
while i > 0:
count += i & 1
i >>= 1
return count
```
这个函数会遍历从1到n的每个数,对每个数进行位运算,统计二进制中1的个数,并将其累加到count变量中。最后返回count即可。
阅读全文