华为OJ:求int型正整数在内存中存储时1的个数
2017-02-19 20:49
218 查看
求int型正整数在内存中存储时1的个数
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
输入例子:
5
输出例子:
2
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
输入例子:
5
输出例子:
2
解答: #include <iostream> #include <vector> using namespace std; int main() { int n; vector<int>v; while(cin>>n) { int count = 0; v.clear(); while(n) { v.push_back(n%2); n/=2; } for(vector<int>::iterator it=v.begin();it!=v.end();++it) { if(*it) count++; } cout<<count<<endl; } return 0; } 解法二 其实这道题的原意是想让编程人员使用位运算,代码如下: #include <iostream> using namespace std; int main() { int n; while(cin>>n) { int count = 0; while(n) { n = n&(n-1); count++; } cout<<count<<endl; } return 0; }
相关文章推荐
- 【华为OJ】【015-求int型数据在内存中存储时1的个数】
- 华为OJ训练之0009-161231-统计二进制数字中1的个数(求int型数据在内存中存储时1的个数)
- 华为OJ 初级:求int型数据在内存中存储时1的个数
- 华为OJ——求int型数据在内存中存储时1的个数
- 华为oj初级 求int型数据在内存中存储时1的个数
- 【华为OJ】求int型数据在内存中存储时1的个数
- nowcoder华为机试:求int型正整数在内存中存储时1的个数
- 华为OJ 输入一个int型数据,计算出该int型数据在内存中存储时1的个数
- 华为OJ——求int型数据在内存中存储时1的个数
- 【华为 OJ 】求int型数据在内存中存储时1的个数
- 【华为OJ】求int型数据在内存中存储时1的个数
- 华为 OJ 初级 输入一个int型数据,计算出该int型数据在内存中存储时1的个数。
- 【华为OJ】【041-求int型数据在内存中存储时1的个数】
- 华为oj 字符串个数统计&&数字颠倒&&字符串翻转&&字符逆序&&求int型数据在内存中存储时1的个数
- 华为oj之求int型正整数在内存中存储时1的个数
- 牛客网-华为机试在线训练-1.求int型数据在内存中存储时1的个数
- 华为机试:求int型数据在内存中存储时1的个数、 取近似值
- 华为机试---求int型数据在内存中存储时1的个数
- 【华为OJ15】求int型正整数在内存中存储时1的个数
- OJ------求int型数据在内存中存储时1的个数(二进制数中1的个数)