3903 - 统计1和0的个数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

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

题目输入

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

题目输出

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

输入/输出样例

输入格式

5
1
2
3
4
5

输出格式

1 0
1 1
2 0
1 2
2 1

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;
}

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;
}