题目链接:点击打开链接
题目大意:
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
解题思路:
二进制用模(如,1%2)转换。
AC代码
方法一:
#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int main()
{
int n;
while(~scanf("%d",&n))
{
int rnt=0;
for(;n>0;)
{
rnt=rnt+n%2;
n=n/2;
}
printf("%d",rnt);
}
return 0;
}
方法二:
#include<bits/stdc++.h>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int main()
{
int input;
while(cin>>input)
{
int num = 0;
while(input)
{
num = num + input%2;
input = input/2;
}
cout<<num<<endl;
}
return 0;
}