输入样例:
5
1 2 3 4 5
输出样例:
1 1 2 1 2
思路解析:
总结公式思路
- 观察变化规律:减去
1
专门处理最低位的1
。 - 利用逻辑操作:按位与可以清除最低位。
- 简化问题:循环清除最低位的
1
,直到完成目标。
方法1代码实现:
def count_ones_in_binary():
n=int(input())
nums=list(map(int,input().split()))
res=[bin(num).count('1') for num in nums]
print(' '.join(map(str,res)))
count_ones_in_binary()
方法2代码实现:
n = int(input())
nums = list(map(int, input().split()))
res = []
for num in nums:
count = 0
while num:
num = num & (num - 1)
count += 1
res.append(count)
print(' '.join(map(str, res)))
位运算知识点还是很庞大的,楼主目前面临期末周与英语四级考试时间有限,接下来的更新会放缓甚至是好几天不更新,待我度过这一段憔悴时间,争取暑假日更,截至目前主播已完成基础算法的学习,接下来需要学习位运算相关知识与数据结构,计划在期末周结束后进行。频道几天以水题为主,保持一下更新频率
最后感谢大家的关注,是我坚持下去的动力