题解 | #求int型正整数在内存中存储时1的个数#
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
#include <iostream>
#include <cmath>
using namespace std;
//解题思路:int最大为2^32,从最大2^32遍历到最小2^0,依次整除,整除得到一就count++,并将数字减去2^i
int main() {
int num;
cin>>num;
int count=0;
for(int i=32; i>=0; --i){
int temp = num/pow(2,i);
if(temp == 1){
count++;
num -= pow(2,i);
}
}
cout<<count;
return 0;
}
// 64 位输出请用 printf("%lld")
查看14道真题和解析
