1057 数零壹 (20 分)
思路:首先在接受的时候一个字符一个字符的接收,每接收一个字符就判断相加(这样可以省去用一个字符数组存储输入数据)
然后就是二进制转化,转化的时候因为不需要输出转化结果,只需要统计0和1的个数,所以每循环一次记一次数就可以,代码如下:
using namespace std;
int main()
{
int sum=0,count1=0,count2=0;
char c;
while(cin>>c)
{
if('a'<=c&&c<='z')
sum+=c-'a'+1;
if('A'<=c&&c<='Z')
sum+=c-'A'+1;
}
while(sum)
{
if(sum%2)
count2++;
else
count1++;
sum/=2;
}
cout<<count1<<" "<<count2;
}