目录
一【题目描述】
二【题目样例】
三【解题思路】
推荐这个文章
【全网最细PAT题解】【PAT乙】1044 火星数字(测试点2,测试点4详细解释)_Elephant_King的博客-优快云博客
四【代码实现】
#include<iostream>
#include<cstdio>
#include<string.h>
#include<string>
using namespace std;
string diwei[13]={"tret","jan","feb","mar","apr","may","jun","jly","aug","sep","oct","nov","dec"};
string gaowei[13]={"","tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mer","jou"};
int main(){
int n;
cin>>n;
getchar();
for(int j=0;j<n;j++){
string ss;
getline(cin,ss);
if(ss[0]>='0'&&ss[0]<='9'){//十进制变13进制
int num=stoi(ss);
if(num%13==0){
if(num!=0) cout<<gaowei[num/13]<<endl;
else cout<<"tret"<<endl;
}
else{
if(num>13) cout<<gaowei[num/13]<<" ";
cout<<diwei[num%13]<<endl;
}
}
//------------------------------------------------------------
else{
int sum=0;
if(ss.size()>4){
int j=0;
while(ss[j]!=' ') j++;
for(int i=0;i<13;i++){
if(ss.substr(0,j)==gaowei[i]) sum+=13*i;
}
for(int i=0;i<13;i++){
if(ss.substr(j+1)==diwei[i]) sum+=i;
}
cout<<sum<<endl;
}
else{
for(int i=0;i<13;i++){
if(ss==gaowei[i]) {
cout<<13*i<<endl;
break;
}
}
for(int i=0;i<13;i++){
if(ss==diwei[i]) {
cout<<i<<endl;
break;
}
}
}
}
}
}