首页 > 学院 > 开发设计 > 正文

华为OJ:求int型正整数在内存中存储时1的个数

2019-11-08 02:15:32
字体:
来源:转载
供稿:网友

求int型正整数在内存中存储时1的个数 输入一个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;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表