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