题目:给一个数字,计算其为十进制和十六进制时转化为二进制后每个位上1的个数。
#include <stdio.h>
int f(int num)
{
int sum=0;
while(num!=0)
{
sum+=num%2;
num/=2;
}
return sum;
}
int main()
{
int test, num;
scanf("%d",&test);
while(test--)
{
scanf("%d",&num);
int b1=0, b2=0;
b1=f(num);
while(num!=0)
{
b2+=f(num%10);
num/=10;
}
printf("%d %d\n",b1,b2);
}
}