求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;}新闻热点
疑难解答