单点时限: 2.0 sec
内存限制: 256 MB
As we all kown,in computer’s world,the language is represented by ‘0’s and 1’s.The problem is coming,partychen want to know how many ‘0’s and ‘1’in a number based on binary if he give you a number based on decimal.
输入格式
The first line of input gives the number of cases, N(1⩽N⩽100). N test cases follow.
The next N lines will each contain a integers M(1⩽M⩽10000000) based on decimal, as described above.
输出格式
For each test case, output two numbers in one line separately represent the sum of ‘0’s and ‘1’s.
Hint:
If give you a 10 base on decimal,you get 1010 base on binary,and there are two ‘0’s and two ‘1’s.So you must output 2 2.
样例
input
2 10 11
output
2 2 1 3
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
int n;
int temp;
int count = 0;
cin >> n;
vector<int> vints;
for(int i=0;i<n;i++){
cin >> temp;
vints.insert(vints.end(), temp);
}
int sum0=0, sum1=0;
for(int i=0;i<n;i++){
while(vints[i] > 0)
{
if(vints[i]%2 == 1)
sum1++;
else
sum0++;
vints[i] = vints[i] >> 1;
}
cout << sum0 <<" "<< sum1 << endl;
sum1=0;
sum0=0;
}
return 0;
}
该程序读取基于十进制的数字,然后计算它们转换为二进制后包含的0和1的数量。对于每个测试用例,它逐位处理数字,使用位移操作更新计数器并输出结果。
334

被折叠的 条评论
为什么被折叠?



