小编Pey*_*ton的帖子

Python:如何有效地计算1到n数字的二进制表示中"1"的数量?

例如,对于输入5,输出应为7.(bin(1)= 1,bin(2)= 10 ... bin(5)= 101) - > 1 + 1 + 2 + 1 + 2 = 7

这是我尝试过的,但它不是一个非常有效的算法,考虑到我为每个整数迭代一次循环.我的代码(Python 3):

i = int(input())
a = 0
for b in range(i+1):
  a = a + bin(b).count("1")
print(a)
Run Code Online (Sandbox Code Playgroud)

谢谢!

python algorithm

1
推荐指数
1
解决办法
84
查看次数

标签 统计

algorithm ×1

python ×1