火星人是以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(<100),随后N行,每行给出一个[0, 169)区间内的数字 —— 或者是地球文,或者是火星文。

输出格式:

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

输入样例:

4
29
5
elo nov
tam

输出样例:

hel mar
may
115
13
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Map;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// low digit.final String[] lowDigit = { "tret", "jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov","dec" };// high digit.final String[] highDigit = { "", "tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer","jou" };// string to numberMap<String, Integer> map = new HashMap<>();for (int i = 0; i < lowDigit.length; i++) {map.put(lowDigit[i], i);}for (int i = 0; i < highDigit.length; i++) {map.put(highDigit[i], 13 + i);}int n = in.nextInt();for (int i = 0; i < n; i++) {int numInteger = 0;String numString = null;try {numInteger = in.nextInt();} catch (InputMismatchException inputMismatchException) {numString = in.nextLine();} finally {if (numString == null) {// the input is numbers.if (numInteger < 13) {System.out.println(lowDigit[numInteger]);} else {if (numInteger % 13 == 0) {System.out.println(highDigit[numInteger / 13]);} else {System.out.println(highDigit[numInteger / 13] + " " + lowDigit[numInteger % 13]);}}} else {// the input is characters.String[] tempString = numString.split(" "); // split the// input// if the length of tempString is 2, it must combine be high// and lowif (tempString.length == 2) {System.out.println((map.get(tempString[0]) - 13) * 13 + map.get(tempString[1]));} else {// maybe high or low// map.get(Object) >= 13 is highif (map.get(tempString[0]) >= 13) {System.out.println((map.get(tempString[0]) - 13) * 13);} else {System.out.println(map.get(tempString[0]));}}}}}in.close();}
}

火星人是以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(<100),随后N行,每行给出一个[0, 169)区间内的数字 —— 或者是地球文,或者是火星文。

输出格式:

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

输入样例:

4
29
5
elo nov
tam

输出样例:

hel mar
may
115
13
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Map;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// low digit.final String[] lowDigit = { "tret", "jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov","dec" };// high digit.final String[] highDigit = { "", "tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer","jou" };// string to numberMap<String, Integer> map = new HashMap<>();for (int i = 0; i < lowDigit.length; i++) {map.put(lowDigit[i], i);}for (int i = 0; i < highDigit.length; i++) {map.put(highDigit[i], 13 + i);}int n = in.nextInt();for (int i = 0; i < n; i++) {int numInteger = 0;String numString = null;try {numInteger = in.nextInt();} catch (InputMismatchException inputMismatchException) {numString = in.nextLine();} finally {if (numString == null) {// the input is numbers.if (numInteger < 13) {System.out.println(lowDigit[numInteger]);} else {if (numInteger % 13 == 0) {System.out.println(highDigit[numInteger / 13]);} else {System.out.println(highDigit[numInteger / 13] + " " + lowDigit[numInteger % 13]);}}} else {// the input is characters.String[] tempString = numString.split(" "); // split the// input// if the length of tempString is 2, it must combine be high// and lowif (tempString.length == 2) {System.out.println((map.get(tempString[0]) - 13) * 13 + map.get(tempString[1]));} else {// maybe high or low// map.get(Object) >= 13 is highif (map.get(tempString[0]) >= 13) {System.out.println((map.get(tempString[0]) - 13) * 13);} else {System.out.println(map.get(tempString[0]));}}}}}in.close();}
}

PAT 乙级 1044. 火星数字(20) Java版相关推荐

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

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

  2. PAT(B) 1044 火星数字(Java)进制转换

    题目链接:1044 火星数字 (20 point(s)) 题目描述 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, ...

  3. PAT 乙级 1044  火星数字

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

  4. PAT 乙级 1029. 旧键盘(20) Java版

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在2行中分别给出应该输入的文字.以及实际 ...

  5. PAT 乙级 1054. 求平均值 (20) Java版

    本题的基本要求非常简单:给定N个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的.一个"合法"的输入是[-1000,1000]区间内的实数,并且最多精确到小数点后2位.当 ...

  6. PAT 乙级 1009. 说反话 (20) Java版

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区 ...

  7. PAT 乙级 1027. 打印沙漏(20) Java版

    本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ************ ***** 所谓"沙漏形状",是指每行输出奇 ...

  8. PAT 乙级 1034. 有理数四则运算(20) Java版

    本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只 ...

  9. PAT 乙级 1042. 字符统计(20) Java版

    请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过1000的字符串.字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束( ...

最新文章

  1. 张雨生林志炫高音对比
  2. Lvs 负载均衡之nat模式配置
  3. Docker 入门到实践笔记1
  4. Java单例模式(Singleton)的五种实现
  5. 大数据平台蓝图_数据科学面试蓝图
  6. 【软件开发底层知识修炼】三 深入浅出处理器之三 内存管理与内存管理单元(MMU)
  7. LeetCode-287 寻找重复数 二分法
  8. I - Defeat the Enemy UVALive - 7146 二分 + 贪心
  9. 转换文档参数_1分钟教会你将Excel转换成Word,简单高效,办公人士必备神技
  10. Memcache图形化管理工具MemAdmin
  11. 企业真的有必要购买WMS系统吗?
  12. ssh整合步骤之一(搭建环境)
  13. BeautifulSoup与aiohttp的简单应用-爬取《网上中华五千年》音频
  14. html5做微信公众号文章代码,微信公众号文章怎么使用代码排版?
  15. python实现——视频转桌面壁纸
  16. linux bash 自动补全,bash中的自动补全机制
  17. 怒怼|扎克伯格到底是个怎样的人
  18. vtk读取CT序列mip投影
  19. Go语言自学系列 | 高效golang开发
  20. python实现千牛客服自动回复语_千牛旺旺客服设置自动回复的技巧有哪些?总结性文章来啦...

热门文章

  1. confluence 统计页面访问量插件Page View Tracker
  2. [原创] IAR7.10安装注册教程
  3. 【Android】【录音】Android录音--AudioRecord、MediaRecorder
  4. 系统集成资质培训 - 论文:论项目的人力资源管理
  5. 协同办公OA系统 沉淀企业文化
  6. 网站建设过程中的:重要页面、关键页面、过程页面、结果页面
  7. Pwn2Own 2021奥斯汀黑客大赛公布类别、目标及奖金
  8. 开源组件 Ehcache中被曝严重漏洞,影响多款Jira产品
  9. 很多工控产品都在用的 CODESYS 软件中被曝10个严重漏洞
  10. 前方两万字高能预警!SMBGhost SMBleed 漏洞深入研究