题目描述

分析:
利用map存储火星文和对应的数字,打表,直接输出。
#include<cstdio>
#include<map>
#include<cstring>
#include<iostream>
using namespace std;
string unit[13]={"tret","jan", "feb", "mar", "apr", "may","jun", "jly", "aug", "sep", "oct", "nov", "dec"};
string ten[13]={"tret","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou"};
map<string,int>strTonum;
string numTostr[170];
int main(){
for(int i=0;i<13;i++){
numTostr[i]=unit[i];
strTonum[unit[i]]=i;
numTostr[i*13]=ten[i];
strTonum[ten[i]]=i*13;
}
for(int i=1;i<13;i++)
for(int j=1;j<13;j++){
string str=ten[i]+" "+unit[j];
numTostr[i*13+j]=str;
strTonum[str]=i*13+j;
}
int n;
scanf("%d",&n);
getchar();
while(n--){
string str;
getline(cin,str);
if(str[0]>='0'&&str[0]<='9'){
int num=0;
for(int i=0;i<str.length();i++){
num=num*10+str[i]-'0';
}
cout<<numTostr[num]<<endl;
}
else{
cout<<strTonum[str]<<endl;
}
}
return 0;
}