📅  最后修改于: 2023-12-03 14:50:48.480000             🧑  作者: Mango
该题是 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
。