华为机试在线训练题(python3.5.2)——正整数在内存中存储1的个数
题目
题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
示例1
输入
5
输出
2
我的解答
num = int(input()) # 获取输入,并转为整型
result = []
n = 0
while num: # 判断除2之后的值
b = num%2 # 取除2的余数
result.append(b) # 保存余数,可不需要
if b > 0: # 余数为1时
n += 1 # 数量+1
num = int(num/2) # 除2之后的整数值
print(n) # 输出结果
注:自己练习记录,仅供参考