ACM练习题

题目描述

题目:刚上大一的小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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值