题目

题意: 火星数字和阿拉伯数字转换

#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;
}