小编Maw*_*aws的帖子

如何计算数字的设置位总数

  • 给定一个正整数 A,任务是计算从 1 到 A 的所有数字的二进制表示中设置位的总数。
 A = 3
 DECIMAL    BINARY  SET BIT COUNT
    1          01        1
    2          10        1
    3          11        2
Run Code Online (Sandbox Code Playgroud)

1 + 1 + 2 = 4

  • 我得到了正确的输出

代码如下

def solve(A):
     ad = ''
     for i in range(A + 1):
         ad += str(bin(i).replace('ob',''))
     return ad.count('1')
Run Code Online (Sandbox Code Playgroud)

使用按位

  def solve(A):
        count = 0
        for i in range(A + 1):
            while i > 0:
                i= i & (i-1)
                count += 1
        return (count)
Run Code Online (Sandbox Code Playgroud)
  • 在这两种情况下,我都得到 Time Limit Exceeded.

python time-complexity

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

标签 统计

python ×1

time-complexity ×1