题解 | 求int型正整数在内存中存储时1的个数
求int型正整数在内存中存储时1的个数
https://www.nowcoder.com/practice/440f16e490a0404786865e99c6ad91c9
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
int count=1;
if(n==0)count=0;
while(n!=0&&n!=1){
if (n%2==1)count++;
n=n/2;
}
cout<<count<<endl;
}
// 64 位输出请用 printf("%lld")
不要求转化成二进制,只要求个数,一直除下去就好了。
写复杂了,学个新方法
int main() {
int n;
cin>>n;
int count=0;
while(n){
count+=n%2;
n=n/2;
}
cout<<count<<endl;
}
查看16道真题和解析
