191.[Leetcode]Number of 1 Bits
2016-05-02 19:30
471 查看
我的算法:
大森算法:
解释:
n: xxxxxxx10
n-1: xxxxxxx00
则
n&(n-1) : xxxxxxx00
相当于去掉了最后一个1位 的1,(注意:而不是最后一位的1)
//将转化好的二进制字符串存入s中,然后从s中判断有多少的1 // 从10进制到其他进制,都是对其求余数 class Solution { public: int hammingWeight(uint32_t n) { string s = ""; char temp[1]; //循环求余数 int y(0); while(n != 0){ y = n%2; sprintf(temp,"%d",y); s += temp; n = n/2; } int count(0); for(int i = 0; i < s.size(); i++) if(s[i] == '1') count++; return count; } };
大森算法:
int hammingWeight(uint32_t n) { int cout(0); while(n > 0) { n = n&(n-1); cout++; } return cout; }
解释:
n: xxxxxxx10
n-1: xxxxxxx00
则
n&(n-1) : xxxxxxx00
相当于去掉了最后一个1位 的1,(注意:而不是最后一位的1)
相关文章推荐
- C++实现简单的HTTP服务器
- python中的可变参数
- 序列化流的使用
- 百度地图定位
- 第十周 5.2 --- 5.8
- Docke开山篇
- [BZOJ2440][中山市选2011]完全平方数(二分+容斥原理)
- NYOJ99单词拼接(欧拉通路回路,dfs打印路径)
- leetcode 073 Set Matrix Zeroes
- XML的解析
- 快速点击两次退出应用
- Just a Hook---hdu1698(线段树---区间处理)
- iOS App icon、启动页、图标规范
- 【操作系统】OS的整体框架
- hiho#1050 : 树中的最长路
- c语言学生信息管理系统学习感想
- 如何成为一个牛逼的C/C++程序员?
- poj 1562 Oil Deposits(dfs)
- jsp集成markdown编辑器
- WebService核心文件【server-config.wsdd】详解及调用示例