📌  相关文章
📜  教资会网络 | UGC-NET CS 2017 年 12 月 2 日 |问题 24(1)

📅  最后修改于: 2023-12-03 15:10:16.667000             🧑  作者: Mango

教资会网络 | UGC-NET CS 2017 年 12 月 2 日 | 问题 24

定义

这道题是一道比较简单的数学题目,需要编写一个函数来计算给定的十进制整数的二进制表示中的1的数量。

定义函数 count_bits(int n),返回给定整数n的二进制表示中的1的数量。

思路

要计算一个整数的二进制表示中的1的数量,可以使用位运算的技巧。我们可以利用一个变量 count 来保存1的数量,然后循环不断地将原整数n右移一位,同时判断最后一位是否为1,如果是,就将 count 加1。当n变成0时,整个过程结束,最终的 count 值即为结果。

代码实现

下面是使用Python编写的函数实现:

def count_bits(n):
    count = 0
    while n > 0:
        count += n & 1
        n >>= 1
    return count
示例

我们可以测试一下这个函数,例如给定数字5,其二进制表示为101,共有2个1。使用这个函数计算一下:

>>> count_bits(5)
2

这个函数的结果是正确的。