欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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