1的个数
3000 ms | 内存限制: 65535
1
第一行输入一个整数N,表示测试数据的组数(1<N<1000)
每组测试数据只有一行,是一个整数M(0=<M<=10000)
输出
每组测试输出占一行,输出M的二进制表示中1的个数
样例输入
3 4 6 7
样例输出
1 2 3
# include<stdio.h>
int change_shi_er(int c)
{
int m=c;
int n=c;
int num = 0;
int a[1000]={0},b[1000]={0},j,i=0;
while(m!=0)
{
n=m%2;
m=m/2;
a[i++] = n;
}
for(;i==0;i--);
i--;
j=0;
while(1)
{
b[j]=a[i];
if(b[j]==1)
num++;
j++;
i--;
if(i<0)
break;
}
printf("%d\n",num);
return 0;
}
int main()
{
int a,n;
scanf("%d",&n);
while(n--)
{
scanf("%d",&a);
change_shi_er(a);
}
return 0;
}