def lowbit(x):
"""返回x的二进制表示中从左至右的最后一位1的位置"""
return x & -x
if __name__=="__main__":
n = int(input().strip())
nums = list(map(int, input().split()))
for i in range(n):
res = 0
x = nums[i]
while x:
x-=lowbit(x)
res+=1
print(res, end=" ")
大佬请教下,为什么我把 res = 0放在for i in range(n):的前面,输出就会变成了1 2 4 5 7 ?