您的位置:首页 > 其它

NYOJ-100-1的个数-2013年08月13日11:48:48

2013-11-06 19:55 267 查看


1的个数

时间限制:3000 ms  |  内存限制:65535 KB
难度:1

描述小南刚学了二进制,他想知道一个数的二进制表示中有多少个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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: