1044 火星数字(20)(20 分)

火星人是以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

 PS:

   代码主要有2个功能:

                1、地球数字转火星文

                             可以将数字转化成13进制的数,然后将每一位作为下标,输出对应字符。

                2、火星文转地球数字。

                             有两种可能,可能有一位或者两位火星文,综合一下,可以第一次取字符串末三位进行匹配,如果字符串长度                      比4大,则说明还有一位火星文,再取字符串前三位,进行匹配,最后得到地球数字。

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{string one[13] = { "tret" ,"jan", "feb", "mar","apr","may", "jun", "jly","aug", "sep", "oct", "nov","dec" },two[13] = { "tret","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou" };int n, sum = 0,res;string m;cin >> n;getchar();    //清除缓存(之前的回车键)while (n--) {getline(cin, m);if (isdigit(m[0])) {        //地球->火星res = atoi(m.c_str());    if (res/13)cout << two[res/13];if (res / 13 && res % 13)cout << " "<< one[res % 13];if (!(res/13))cout << one[res % 13];cout << endl;}else {                    //火星->地球for (int i = 0; i < 13; i++) {if (m.substr(m.length() - 3,m.length()) == one[i]) {sum += i;break;}         else if (m.substr(m.length() - 3, m.length()) == two[i]) {sum += (i*13);break;}}if (m.length() > 4) {for (int i = 0; i < 13; i++) {if (m.substr(0, 3) == two[i]) {sum += i * 13;break;}}}cout << sum << endl;sum = 0;}}return 0;
}

转载于:https://www.cnblogs.com/F-itachi/p/9974442.html

PAT 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) PAT

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

  4. 1044. 火星数字(20)

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

  5. PAT 1044. 火星数字

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

  6. PAT --- 1044.火星数字 (20 分)

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

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

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

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

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

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

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

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

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

最新文章

  1. rabbitmq利用死信队列+TTL 实现延迟队列
  2. MyBatis之级联——一对一关系
  3. sqlserver 性能问题
  4. FireWork 制作android 应用程序 icon
  5. linux——编写Shell脚本常用命令:diff、patch、cut、sort、uniq、、||、test、tr
  6. Chrome浏览器和百度搜索引擎兼容度不佳
  7. 解决 The 'InnoDB' feature is disabled; you need MySQL built with 'InnoDB' to have it working
  8. springboot日志配输出路径配置_Spring Boot 日志配置方法(超详细)
  9. utu2440 vxWorks DM9000A驱动移植
  10. java 解锁关闭文件占用_程序员:Java文件锁定、解锁和其它NIO操作
  11. python数据拟合
  12. EF BB BF的问题
  13. 机器学习: 最大似然估计 (MLE) 最大后验概率(MAP)
  14. 带通滤波器中心频率计算公式中R是哪个值_手把手教系列之IIR数字滤波器设计实现...
  15. OpenSSL自建CA和颁发SSL证书
  16. 使用SVG.Net生成svg格式文字图片
  17. IDEA配置JPBC
  18. 理想电流源与理想电压源
  19. C语言例题:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
  20. Java输出字符串出现次数最多的字母

热门文章

  1. MySQL数据库基础(三)——SQL语言
  2. Emacs Lisp 15 分钟入门
  3. oracle显示一个月的所有天数
  4. Unix的***追踪
  5. ul在Firefox和IE下的不同表现
  6. C/C++使用strcpy报错解决方案
  7. js des加密 java_java端采用DES/CBC/PKCS5Padding 加密,js解密不了。google搜了好多方法没能解决...
  8. 组件三层_Java三层架构原理与作用小结
  9. C语言实验六作业,C语言程序设计作业——实验六.doc
  10. 在mybatis里面设置不同数据库运行环境和适应性问题