标签:338 比特 二进制 res 个数 偶数 计数 int vector
- 分析数字奇偶性与二进制个数的关系
- 奇数:二进制表示中,奇数一定比前面那个偶数多一个 1,因为多的就是最低位的 1。
- 偶数:二进制表示中,偶数中 1 的个数一定和除以 2 之后的那个数一样多。因为最低位是 0,除以 2 就是右移一位,也就是把那个 0 抹掉而已,所以 1 的个数是不变的。
vector<int> countBits(int n)
{
vector<int> res(n+1, 0);
for(int i = 1; i <= n; ++i)
{
if(i % 2 == 1)
{
res[i] = res[i-1] + 1;
}
else
{
res[i] = res[i/2];
}
}
return res;
}
标签:338,比特,二进制,res,个数,偶数,计数,int,vector 来源: https://blog.csdn.net/qq_43287931/article/details/120968082
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。