📌  相关文章
📜  教资会网络 | UGC-NET CS 2017 年 11 月 – III |问题 64(1)

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

教资会网络 | UGC-NET CS 2017 年 11 月 – III |问题 64

本题要求编写一个Python函数,接受一个整数n,返回n的二进制表示中1的个数。

输入
  • 输入的第一行包含一个整数T,表示测试用例的数量。
  • 接下来的T行,每行包含一个正整数n (1 ≤ n ≤ 10^9)。
输出
  • 对于任意输入的n,输出其二进制表示中1的个数。
示例

输入:

2
5
17

输出:

2
2

思路

本题可使用Python内置函数bin将整数转换成二进制字符串,计算其中1的个数即可。

Python代码

def count_ones(n):
    """
    统计整数n在二进制下的1的个数。
    """
    binary = bin(n)[2:]  # 将整数转换成二进制字符串
    return binary.count('1')  # 统计1的个数


# 测试代码
if __name__ == '__main__':
    T = int(input())
    for i in range(T):
        n = int(input())
        print(count_ones(n))

运行结果

>>> 让我们尝试使用示例输入测试代码结果。
2
5
2
17
2