c++如何求1的个数
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"c++如何求1的个数",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"c++如何求1的个数"吧!算法:核心在于单个数字的1的个数的计算,其他
千家信息网最后更新 2026年11月01日c++如何求1的个数
本篇内容主要讲解"c++如何求1的个数",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"c++如何求1的个数"吧!
算法:
核心在于单个数字的1的个数的计算,其他的题目都是基于这个基础来做的操作。
题目1:求1的个数
代码实现:
func hammingWeight(num uint32) int { count := 0 for i := 0; i < 32; i++ { if num&(1<题目2:根据数字二进制下1的数目排序
代码实现:
func sortByBits(arr []int) []int { tmp := make(map[int][]int) nums := []int{} for _, a:=range arr { n:=getCount(a) v,ok:=tmp[n] if !ok { v = []int{a} tmp[n] = v nums = append(nums,n) } else { v = append(v,a) tmp[n] = v } } // 利用map将数组按照升序的方式排序 sort.Ints(nums) res := []int{} for _,v := range nums{ // 相同位数的数组里面也需要按照升序排序 sort.Ints(tmp[v]) res =append(res,tmp[v]...) } return res}func getCount(a int) int { c := 0 for a != 0 { if a&1 == 1 { c++ } a = a>>1 } return c}题目3: 二进制表示中质数个计算位置
代码实现:
func countPrimeSetBits(L int, R int) int { // 质数是只能被1和自己整除,R最大值是10^6,也就是2^20,所以质数如下 s := []int{2,3,5,7,11,13,17,19} m := make(map[int]int) for _,v:=range s { m[v] = v } // 计算每个数中1的个数 c := 0 for i:=L;i<=R;i++ { t := numCount(i) if _,ok := m[t];ok { c++ } } return c}func numCount(num int) int { c := 0 for i:=0;i<64;i++ { if num&(1<到此,相信大家对"c++如何求1的个数"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
个数
c++
题目
代码
质数
排序
二进制
内容
升序
单个
数字
数组
算法
学习
实用
更深
最大
相同
也就是
位数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融科技
互联网科技股
厦门中拓互联网络科技有限公司
重庆互联网络科技
港股互联网科技股
深圳科技互联网
智慧科技互联网
广州善班互联网科技
苏州大垚互联网科技
深圳卡尔迅互联网科技有限公司怎么样
隆华科技工业互联网
互联网之后的科技是什么
语蝶互联网科技有限公司
青岛科技大学互联网大赛研究生
国大互联网教育科技有限公司工作
互联网公司黑科技创始人
银行科技岗属于互联网吗
云南互联网科技学费
长沙渺峰互联网科技有限公司
科技和互联网行业的特点
山东特亿宝互联网科技有限公司
互联网佳科技有限公司
江苏根荣互联网科技
中关村互联网科技集团
互联网科技ppt模板
齐家互联网科技有限公司
互联网高科技股票
国大互联网教育科技有限公司工作
互联网科技创新的路径
工业互联网展湾科技股份有限公司