标签:include net system names other lan else style ret
People on Mars count their numbers with base 13:
For examples, the number 29 on Earth is called "hel mar" on Mars; and "elo nov" on Mars corresponds to 115 on Earth. In order to help communication between people from these two planets, you are supposed to write a program for mutual translation between Earth and Mars number systems.
Each input file contains one test case. For each case, the first line contains a positive integer N (<). Then N lines follow, each contains a number in [0, 169), given either in the form of an Earth number, or that of Mars.
For each number, print in a line the corresponding number in the other language.
4
29
5
elo nov
tam
hel mar
may
115
13
#include<iostream> #include<string> #include<map> using namespace std; string numTostr[170]; map<string,int> strTonum; string unitDigit[13]={ "tret", "jan", "feb","mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec" }; string tenDigit[13] = { "tret","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou" }; void init(){ for(int i = 0; i < 13; i++){ strTonum[unitDigit[i]] = i; numTostr[i] = unitDigit[i]; strTonum[tenDigit[i]] = i * 13; numTostr[i * 13] = tenDigit[i]; } for(int i = 1; i < 13; i++){ for(int j = 1; j < 13; j++){ string str = tenDigit[i] + " " + unitDigit[j]; numTostr[i * 13 + j] = str; strTonum[str] = i * 13 + j; } } } int main(){ init(); int n; scanf("%d%*c",&n); 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; }
标签:include net system names other lan else style ret
原文地址:https://www.cnblogs.com/wanghao-boke/p/9571325.html