题解 | 求int型正整数在内存中存储时1的个数
import sys for line in sys.stdin: assert line.strip().split()[0].isdigit(), "请输入一个非负整数 (0≦n≦n<2的30次方)" # 限制不可输入字符和小数点 assert (0 <= int(line.strip().split()[0]) <= 2 ** 31), "请输入(0≦n≦n<2的30次方)的整数" # 限制输入值的范围 n = int(line.strip().split()[0]) print(bin(n).count('1'))