游客 Signup | Login
中文 | En

3903 - 统计1和0的个数

小南刚学了二进制,他想知道一个数的二进制表示中有多少个1和0,你能帮他写一个程序来完成这个任务吗?

Input

第一行输入一个整数N,表示测试数据的组数(1<N<1000)
每组测试数据只有一行,是一个整数M(0=<M<=1000)

Output

每组测试输出有两个数1的个数和0的个数,中间用空格隔开

Examples

Input

5
1
2
3
4
5

Output

1 0
1 1
2 0
1 2
2 1

Solution C

#include<stdio.h>
int main()
{
    int n,m;
    scanf("%d",&m);
    while(m --)
    {
        int sum = 0;
        scanf("%d",&n);
        while(n)
        {
            sum += n % 2;
            n /= 2;
        }
        printf("%d\n",sum);
    }
    return 0;
}

Solution C++

#include <stdio.h>

int main()
{
	int n;
	scanf("%d",&n);
	while(n--)
	{
		int m,a = 0,b = 0;
		scanf("%d",&m);
		while(m)
		{
			if(m%2 == 0)
				a++;
			else
				b++;
			m = m/2;
		}
		printf("%d %d\n",b,a);
	}
	return 0;
} 
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题