火星人是以 13 进制计数的:

  • 地球人的 0 被火星人称为 tret。
  • 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec。
  • 火星人将进位以后的 12 个高位数字分别称为:tam, hel, maa, huh, tou, kes, hei, elo, syy, lok, mer, jou。

例如地球人的数字 29 翻译成火星文就是 hel mar;而火星文 elo nov 对应地球数字 115。为了方便交流,请你编写程序实现地球和火星数字之间的互译。

输入格式:

输入第一行给出一个正整数 N(<),随后 N 行,每行给出一个 [0, 169) 区间内的数字 —— 或者是地球文,或者是火星文。

输出格式:

对应输入的每一行,在一行中输出翻译后的另一种语言的数字。

输入样例:

4
29
5
elo nov
tam

输出样例:

hel mar
may
115
13
#include<cstdio>
#include<iostream>
#include<string>
#include<map>
using namespace std;
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"};
string numToStr[170];
map<string,int>strToNum;void init(){for(int i = 0; i < 13; i++){numToStr[i] = unitDigit[i];strToNum[unitDigit[i]] = i;numToStr[i * 13] = tenDigit[i];strToNum[tenDigit[i]] = i * 13;}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",&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;
}

转载于:https://www.cnblogs.com/wanghao-boke/p/10453526.html

1044 火星数字 (20 分)相关推荐

  1. 【PAT乙】1044 火星数字 (20分)

    1044 火星数字 (20分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, ju ...

  2. PAT乙级 1044 火星数字 (20分)

    1044 火星数字 (20分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, ju ...

  3. 1044 火星数字 (20 分)(c++)

    火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep ...

  4. 测试点2和测试点4错的来:1044 火星数字 (20分)

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为 ...

  5. 1044 火星数字 (20分)

    火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep ...

  6. 【PAT乙级】1044 火星数字 (20 分)

    题目地址 #include<bits/stdc++.h> using namespace std; string a[13]={"tret","jan&quo ...

  7. 1044. 火星数字(20)

    1044. 火星数字(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 火星人是以13进制计数的: 地球人的 ...

  8. 1044. 火星数字(20) PAT

    1044. 火星数字(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 火星人是以13进制计数的: 地球人的 ...

  9. PAT 乙级 1044. 火星数字(20) Java版

    火星人是以13进制计数的: 地球人的0被火星人称为tret. 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, no ...

  10. 1044. 火星数字(20)-PAT乙级真题

    火星人是以13进制计数的:地球人的0被火星人称为tret.地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, ...

最新文章

  1. JUnit测试类完成后事务是默认 回滚的。只能查询数据,不能增删改。
  2. Python爬虫-爬取扇贝单词(Xpath)
  3. 由浅入深laravel教程 :中间件
  4. layui表格 设置默认排序_layui table对表格数据处理后的排序问题
  5. 面向切面编程:操作日志
  6. 二维平面上判断点是否在三角形内
  7. iPhone 6 Plus实际分辨率为2208x1242的问题
  8. [转帖]Windows下cwRsyncServer双机连续同步部署
  9. 衬线字体与非衬线字体
  10. 聊聊集成电路工程技术人员都有哪些?
  11. 40个使用HDR的超棒夜景摄影照片展示
  12. 更新BLE的设备后,OSX LightBlue 不会更新扫描到Service
  13. webService教程之cxf框架
  14. Oracle执行计划——查看执行计划的方法
  15. 计算机程序漏洞用英语怎么说,网络用语bug是什么意思,中文翻译是虫子(指电脑程序漏洞)...
  16. Istio进入1.7版本,Service Mesh 落地还有什么障碍?
  17. 触动精灵--点击函数封装--一些特殊情况的使用--狂暴传奇
  18. Excel功能及实现
  19. Ipmitool工具安装以及常见使用方法
  20. Linux 单独编译驱动模块(ko文件)

热门文章

  1. Codeforces 333D Characteristics of Rectangles
  2. csp-2020-6-《角色授权》
  3. 记一次对某假冒征信站点的实战渗透
  4. 2018深信服秋招C++笔试题
  5. 学习---在电力系统中额定电压
  6. Struts2安全缺陷(上)
  7. 如何选出好的导热材料-关键参数指
  8. 办公:Word 2003的九个新奇玩法
  9. 飞腾CPU体系结构之系统指令
  10. 如何将水晶报表导出到文件……[海波.NET]