题解 | #求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")