PAT-B 1040~1045 (C++)

PAT-B 1041 考試座位號
AC代碼

#include<iostream>
#include<vector>
using namespace std;
struct Stu{
	string id;
	int n1,n2;//分別表示試機號 座位號 
}; 
int main(){
	int N,M;
	cin>>N;
	vector<Stu> stu(N);
	for(int i=0;i<N;i++) 
		cin>>stu[i].id>>stu[i].n1>>stu[i].n2;
	cin>>M;
	for(int i=0;i<M;i++){
		int n;
		cin>>n;
		for(int j=0;j<N;j++){
			if(stu[j].n1==n) cout<<stu[j].id<<" "<<stu[j].n2<<endl;
		}
	}
	return 0;
}

PAT-B 1042 字符統計
AC代碼

#include<iostream>
#include<cctype>
#include<cstring>
using namespace std;
int main(){
	int ascii[128]={0},max=0;
	string str;
	getline(cin,str);
	for(int i=0;i<str.length();i++){
		if(!isalpha(str[i])) continue;
		if(islower(str[i])) ascii[toupper(str[i])]++;
		if(isupper(str[i])) ascii[tolower(str[i])]++;
		ascii[str[i]]++;
		if(ascii[str[i]]>max) max=ascii[str[i]];
	} 
	for(int i=97;i<128;i++){
		if(ascii[i]==max) {
			cout<<(char)i<<" "<<ascii[i];
			break;
		}
	}
	return 0;
}

PAT-B 1043 輸出PATest
AC代碼

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	string str;
	getline(cin,str);
	int n[6]={0};//下標分別於P A T e s t對應 
	for(int i=0;i<str.length();i++){
		if(str[i]=='P') n[0]++;
		if(str[i]=='A') n[1]++;
		if(str[i]=='T') n[2]++;
		if(str[i]=='e') n[3]++;
		if(str[i]=='s') n[4]++;
		if(str[i]=='t') n[5]++;
	}
	while(1){
		if(n[0]==0&&n[1]==0&&n[2]==0&&n[3]==0&&n[4]==0&&n[5]==0)
			break;
		if(n[0]) { cout<<'P'; n[0]--;}
		if(n[1]) { cout<<'A'; n[1]--;}
		if(n[2]) { cout<<'T'; n[2]--;}
		if(n[3]) { cout<<'e'; n[3]--;}
		if(n[4]) { cout<<'s'; n[4]--;}
		if(n[5]) { cout<<'t'; n[5]--;}
	}
	return 0;
} 

PAT-B 1044 火星數字
AC代碼

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	string n1[12]={"jan","feb","mar","apr","may","jun","jly","aug","sep","oct","nov","dec"};
	string n2[12]={"tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mer","jou"};
	int N;
	cin>>N;
	getchar();
	while(N--){
		string str;getline(cin,str);
		if(str.length()==1||(str[0]>='0'&&str[0]<='9')){//地球數字—>火星
			int num=0;
			for(int i=0;i<str.length();i++) num=num*10+(str[i]-'0');
			if(num/13) cout<<n2[num/13-1]<<" ";
			if(num%13) cout<<n1[num%13-1]<<endl;
			else cout<<"tret"<<endl;
		} else {//火星->地球 
			int flag=0;
			if(str.length()==4) cout<<"0"<<endl;
			else if(str.length()==3){
				for(int i=0;i<12;i++)
					if(n1[i]==str) {
						flag=1;
						cout<<i+1<<endl;
						break;
					}
				for(int i=0;i<12;i++)
					if(n2[i]==str) cout<<13*(i+1)<<endl; 
			} else {
				int num=0;
				string s2=str.substr(0,3);
				for(int i=0;i<12;i++)
					if(n2[i]==s2) num=13*(i+1);
				if(str.length()==8) cout<<num<<endl;//表明最後一個是tret
				else {
					string s1=str.substr(4,3);
					for(int i=0;i<12;i++)
						if(n1[i]==s1) cout<<num+i+1<<endl;
				} 
			}
			
		}
	}
	return 0;
} 

PAT-B 1045

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章