HHUOJ 1838 神奇的工号
题目描述
ACM俱乐部里员工的都有一个工号,这个工号的二进制表达中1的个数越多,这个员工的级别就越高。
输入一个工号,求这个工号的二进制表达中1的个数。
例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
输入
每组测试数据输入一行,每行输入一个整数(绝对值<=1000000)。
输出
每组测试数据输出一行,这个工号的二进制表达中1的个数。
样例输入
10
0
-32768
样例输出
2
0
17
Python代码:
while True:
try:
n=int(input())
s=int(bin(((1 << 32) - 1) & n)[2:])
k=0
while s!=0:
if s%10==1:
k+=1
s//=10
print(k)
except:
break