输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
来源:互联网 发布:非主流文化 知乎 编辑:程序博客网 时间:2024/05/08 18:31
题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
利用位运算~第二种思路很赞....
#include<iostream>
using
namespace
std;
int
count_one_1(
int
num){
int
cnt=0;
//unsigned int i=1;
int
i=1;
while
(i){
if
(num&i) cnt++;
i=i<<1;
}
return
cnt;
}
int
count_one_2(
int
num){
//很赞的方法
int
cnt=0;
while
(num){
num=num&(num-1);
//101 & 100 = 100; 100 & 011=0;
cnt++;
}
return
cnt;
}
int
main(
void
){
int
num;
while
(cin>>num){
cout<<
"solution1:"
<<count_one_1(num)<<endl;
cout<<
"solution2:"
<<count_one_2(num)<<endl;
}
system
(
"pause"
);
return
0;
}
int countOf1(int n) {
int c = 0;
if (n<0) { c++; n = n & (1<<(sizeof(int)*8-1)); }
while (n!=0) {
c+=tab[n&0xff];
n >>= 8;
}
return c;
}
0 0
- 28.整数的二进制表示中1的个数 题目:输入一个整数,求该整数的二进制表达中有多少个1。 例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 输入一个整数,求该整数的二进制表达中有多少个1
- 输入一个整数,求该整数的二进制表达中有多少个1
- 输入一个整数,求该整数的二进制表示中有多少个1
- 【微软100题】输入一个整数,求该整数的二进制表达中有多少个1
- Java算法总结:输入一个整数,求该整数的二进制表示中有多少个1
- 每天学习一算法系列(26)(输入一个整数,求该整数的二进制表达中有多少个1)
- 求整数的二进制表达中有多少个1
- 求该整数的二进制表达中有多少个1
- 整数的二进制表达中有多少个1
- 整数的二进制表示中有多少个1
- 输入一个整数,求该整数的二进制中1的个数,并输出
- 如何获得一个整数的二进制表达中有多少个1?
- 【微创】求整数的二进制表示中有多少个1
- 求整数 在二进制表示中有多少个1的方法
- 给定一个整数N,求N!末尾有多少个0?N!的二进制表示中最低1的位置?
- hdu 3068 Manacher
- OSX: diskutil命令-转换成自由空间并再对其分区
- 最上面的扑克牌
- 过滤器Filter
- OC专有注释
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 【iOS】网络操作与AFNetworking
- 6.6 First Missing Positive
- 一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度。
- Cython红黑树版
- struts2 result type=stream
- 常用idea快捷键
- 字符串的左旋转操
- 关于SVN目录结构分布