PAT 1057 数零壹
程序员文章站
2022-07-15 13:58:35
...
题目连接:请点击
思路:定义一个string类型的字符串str,与一个int型的字母序列和sum(初值为0)。for循环遍历字符串,若字符串当前字符是字母的话就让sum加上相应的值。然后定义两个int型count1与count2记录对应二进制0与1个数,按短除法求得二进制并统计0 1个数最终输出。
代码:
#include<iostream>
#include<cstring>
using namespace std;
int main(){
string str;
while(getline(cin,str)){
int sum=0;//sum是字母序号和
for(int i=0;i<str.length();i++){
if(str[i]>='a'&&str[i]<='z')
sum+=str[i]-'a'+1;//+1是因为字母对应值从1-26
if(str[i]>='A'&&str[i]<='Z')
sum+=str[i]-'A'+1;
}
int count1=0,count2=0;//count1 count2分别是对应二进制0 1个数
while(sum){
if(sum%2==0) count1++;
else count2++;
sum=sum/2;
}
cout<<count1<<" "<<count2;
}
return 0;
}
上一篇: PAT 1057 数零壹
下一篇: PAT 1057 数零壹 python