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