📌  相关文章
📜  国际空间研究组织 | ISRO CS 2020 |第 78 题(1)

📅  最后修改于: 2023-12-03 14:50:48.480000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2020 | 第 78 题

该题是 ISRO CS 2020 中的第 78 题,题目要求设计一个程序,通过输入一个整数,将其转换为二进制数,并输出该二进制数中 1 的个数。

示例
输入: 14
输出:
Binary representation of 14 is: 1110
1's count in the binary representation of 14 is: 3
思路

首先,我们需要将整数转换为二进制。其实,Python 中有现成的函数可以实现这一功能,即 bin() 函数。

接着,我们可以将转换后的二进制数转换为字符串类型,并通过 count() 方法计算其中 1 的个数。

代码
def count_ones(n: int) -> int:
    binary_n = bin(n)[2:]

    print(f"Binary representation of {n} is: {binary_n}")
    ones_count = str(binary_n).count('1')
    print(f"1's count in the binary representation of {n} is: {ones_count}")

    return ones_count

注意:在调用 bin() 函数后,返回的是字符串类型,且字符串前两位为 0b,因此我们需要使用 [2:] 切片,去掉前面的 0b