#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(){
string str;
vector<int> sequenceNum;
int dSum=0,num,num0=0,num1=0;
getline(cin,str);
for(int i=0;i<str.length();i++){
if(str[i]>='A'&&str[i]<='Z'){
num=str[i]-'A'+1;
sequenceNum.push_back(num);
}else if(str[i]>='a'&&str[i]<='z'){
num=str[i]-'a'+1;
sequenceNum.push_back(num);
}
}
// 求和 ,可并入上步
for(int i=0;i<sequenceNum.size();i++){
dSum+=sequenceNum[i];
}
// 10进制转2进制,如果要转为真正的2进制,还需进行字符串反转,这里只需进行统计
string s="";
for(int a=dSum;a;a=a/2)
{
s=s+(a%2?'1':'0');
}
// std::reverse(s.begin(),s.end()); //字符串反转操作,需要#include <algorithm>
// 统计
for(int i=0;i<s.length();i++){
if(s[i]=='0'){
num0++;
}else{
num1++;
}
}
// 输出
cout<<num0<<" "<<num1;
return 0;
}
PAT乙级1057 数零壹
最新推荐文章于 2022-04-27 15:01:26 发布