题意: 火星数字和阿拉伯数字转换
#include<iostream>
#include<sstream>
using namespace std;
int main() {
int n;
string c[13] = {"tret","jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec"};
string b[13] = {"","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou"};
string a;
cin>>n;
getchar();
for(int j=0; j<n; ++j) {
getline(cin,a);
if(a[0]>='0'&&a[0]<='9') {
int num=0;
for(auto i : a)
num=10*num+i-'0';
if(num/13)
cout<<b[num/13];
if(num/13&&num%13)cout<<" ";
if(num%13||num==0) cout<<c[num%13];
} else {
if(a.size()==4)
cout<<"0";
else if(a.size()==3) {
for(int i = 0; i<13; i++) { //遍历高位
if(a==b[i]) {
cout<<i*13;
break;
}
}
for(int i = 0; i<13; i++) { //遍历低位
if(a==c[i]) {
cout<<i;
}
}
} else {
istringstream it(a);
string t;
int sum=0;
while(it>>t) {
for(int i = 0; i<13; i++) { //遍历低位
if(t==c[i]) {
sum+=i;
break;
}
}
for(int i = 0; i<13; i++) { //遍历高位
if(t==b[i]) {
sum+=i*13;
break;
}
}
}
cout<<sum;
}
}
cout<<endl;
}
return 0;
}