题目描述
题目:刚上大一的小A最近看上了隔壁班的小S,犹豫了段时间,他终于像小米S表白了,但小S并没有立刻答应 ,而是给了小A一个密码盒子,并告诉小A想说的话都在盒子里面,盒子的密码是由4个数字组成,小A很开心,但令小A烦恼的是他不知道怎么打开这个盒子,虽然盒子上有4个数字,但并不是盒子的密码,他只知道密码的四个数字是由盒子上的每个数字在二进制表示1的个数,可是他没有学过二进制(辣鸡),无法解除密码,看到小A一筹莫展的样子,你能帮他解出盒子的密码吗?
Input
第一行一个整数M,表示测试实例额个数;
后面M行输入数据,每行包含四个整数a,b,c,d
规定:1 <= M <= 10,0
Output
每组测试数据输出占一行,输出4个整数。
Sample Input
2
8 14 16 29
25 127 100 64
Sample Output
1 3 1 4
3 7 3 1
AC代码
#include <stdio.h>
int countTimes(int num){
int t,flag,count = 0;
while(num != 0){
t = num;
num /= 2;
flag = t - 2*num;
if(flag)
count++;
}
return count;
}
int main()
{
int M,i,num,times[4];
scanf("%d",&M);
while(M--){
for(i = 0;i < 4;i++){
scanf("%d",&num);
times[i] = countTimes(num);
}
for(i = 0;i < 4;i++)
printf("%d ",times[i]);
printf("\n");
}
return 0;
}