3903 - 统计1和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; }