尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

AcWing 801:二进制中 1 的个数 ← lowbit 等三种算法

AcWing 801:二进制中 1 的个数 ← lowbit 等三种算法
📅 发布时间:2026/6/20 4:24:19

​【题目来源】
https://www.acwing.com/problem/content/803/

【题目描述】
给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。

【输入格式】
第一行包含整数 n。
第二行包含 n 个整数,表示整个数列。​​​​​​​

【输出格式】
共一行,包含 n 个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中 1 的个数。​​​​​​​

【输入样例】
5
1 2 3 4 5​​​​​​​

【输出样例】
1 1 2 1 2​​​​​​​

【数据范围】
1≤n≤100000,
0≤数列中元素的值≤10^9​​​​​​​

【算法分析】
● 短除法是一种用于整数除法的简便算法,尤其适用于进制转换。它的核心思想是“除基取余,倒序排列”。
● 位运算法。基于“>>=”、“&”等位运算操作,进行统计。
● lowbit(x)=x & (-x),返回整数的二进制表示中最低位 1 所对应的十进制数。

【算法代码一:模拟短除法】
短除法是一种用于整数除法的简便算法,尤其适用于进制转换。它的核心思想是“除基取余,倒序排列”。

#include <bits/stdc++.h>
using namespace std;int main() {int n,x,cnt;cin>>n;while(n--) {cnt=0;cin>>x;while(x) {if(x%2==1) cnt++;x/=2;}cout<<cnt<<" ";}return 0;
}/*
in:
5
1 2 3 4 5out:
1 1 2 1 2
*/

【算法代码二:位运算法】
基于“>>=”、“&”等位运算操作,进行统计。

#include <bits/stdc++.h>
using namespace std;int main() {int n,x,cnt;cin>>n;while(n--) {cnt=0;cin>>x;while(x) {if(x&1) cnt++;x>>=1;}cout<<cnt<<" ";}return 0;
}/*
in:
5
1 2 3 4 5out:
1 1 2 1 2
*/

【算法代码三:lowbit】
lowbit(x)=x & (-x) 返回整数的二进制表示中最低位 1 所对应的十进制数。
例如,lowbit(1101000) 返回 8。

#include <bits/stdc++.h>
using namespace std;int lowbit(int x) {return x&(-x);
}int main() {int n,x,cnt;cin>>n;while(n--) {cnt=0;cin>>x;while(x) {cnt++;x-=lowbit(x);}cout<<cnt<<" ";}return 0;
}/*
in:
5
1 2 3 4 5out:
1 1 2 1 2
*/






【参考文献】
https://www.acwing.com/solution/content/183323/
https://www.acwing.com/solution/content/2370/




 

​

相关新闻

  • 131_尚硅谷_函数课堂练习题和作业
  • MTKClient实战指南:掌握联发科芯片调试的终极利器
  • 05-Qwen3的嵌入模型和langchain的整合

最新新闻

  • 2026年靠谱的上海特种电缆/上海PU电缆优质厂家推荐榜 - 品牌宣传支持者
  • 2026年靠谱的pvc给水管/安徽pvc管/pvc排水管可靠供应商推荐 - 行业平台推荐
  • 2026年口碑好的激光切管/济宁激光切管/激光切管代工/济宁激光切管代工精选厂家推荐 - 品牌宣传支持者
  • 青岛即墨区靠谱的空调清洗公司咨询电话(2026最新) - 品牌排行榜
  • 2026年质量好的医药合规卷筒不干胶/食品包装卷筒不干胶/定制卷筒不干胶厂家哪家好 - 行业平台推荐
  • 2026年可靠的青岛办公工学椅/青岛人体工学椅/工学椅/商务久坐工学椅公司哪家好 - 行业平台推荐

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号