1044 火星数字 (20point(s))
火星人是以 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
注意:一开始输入回车要用getchar接收一下,能被13整除的时候直接输出高位,不用再输出0的火星文
#include <iostream>
#include <string>
using namespace std;int main()
{string low[] = {"","jan","feb","mar","apr","may","jun","jly","aug","sep","oct","nov","dec"};string high[] = {"","tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mer","jou"};int n;cin >> n;getchar();string s;for(int i = 0; i < n; i++){getline(cin, s);if(s[0] >= '0' && s[0] <= '9')//数字转火星文{int num = stoi(s);if(num == 0) cout << "tret" << endl;//0单独处理else{if(num % 13 == 0) cout << high[num/13] << endl;//能被13整除的情况else//其余情况,又分小于13和大于13的情况{if(num < 13) cout << low[num%13] << endl;else if(num > 13) cout << high[num/13] << " " << low[num%13]<<endl;}}}else//火星文转数字{if(s.length() == 4) cout << 0 << endl;else if(s.length() == 3){for(int i = 1; i <= 12; i++){if(low[i] == s){cout << i << endl;break;}else if(high[i] == s){cout << 13 * i << endl;break;}}}else{int sum = 0;string s1 = s.substr(0, 3);string s2 = s.substr(4, 7);for(int i = 1; i <= 12; i++){if(high[i] == s1) sum += 13 * i;if(low[i] == s2) sum += i;}cout << sum << endl;}}}return 0;
}
1044 火星数字 (20point(s))相关推荐
- 1044. 火星数字(20)
1044. 火星数字(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 火星人是以13进制计数的: 地球人的 ...
- PAT 1044. 火星数字
PAT 1044. 火星数字 火星人是以13进制计数的: 地球人的0被火星人称为tret. 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, au ...
- 【PAT乙】1044 火星数字 (20分)
1044 火星数字 (20分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, ju ...
- PAT 乙级 1044 火星数字
1044 火星数字 (20 point(s)) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, ...
- 1044 火星数字 ——c实现
1044 火星数字 (20 分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, j ...
- 1044 火星数字 (20 分)
1044 火星数字 (20 分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, j ...
- PAT乙级 1044 火星数字 (20分)
1044 火星数字 (20分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, ju ...
- PAT(B) 1044 火星数字(Java)进制转换
题目链接:1044 火星数字 (20 point(s)) 题目描述 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, ...
- 【全网最细PAT题解】【PAT乙】1044 火星数字(测试点2,测试点4详细解释)
题目链接 1044 火星数字 题目描述 火星人是以 13 进制计数的:地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, ...
最新文章
- [转]FINDSTR正则表达式小结
- 通过SEH 非inline hook
- 【AI呀,我去】科技圈顶流——元宇宙上线,快来揭开它的神秘面纱
- 数组list操作,切片
- java 多态与重载的区别_java实现多态 方法的重写和重载的区别
- html是一种用于创建网页的标准标记语言,html
- WebView断网提示
- 安装Linux虚拟机(一)
- Linux下Socket编程的端口问题( Bind error: Address already in use )
- [Html]Jekyll 代码高亮的几种选择
- 安装软件提示计算机管理员权限,win10安装软件需要管理员权限的处理办法|win10装软件提示error launching installer如何处理?...
- html5全栈工程师招聘,蓝鸥HTML5全栈工程师 高薪就业的利器
- 什么是电压跟随器?电压跟随器计算方法讲解
- matlab中洛伦兹拟合,基于MATLAB洛伦兹线型非线性拟合算法实现
- .net core 不能更新数据
- JQuery【选择器】
- html5 点灯游戏,夜点灯剧情讲了什么 夜点灯游戏剧情背景介绍-游侠网
- ElasticFusion离线数据集运行结果再现问题总结
- HTML5画布谐振子
- Qt5包含头文件error: C1083: 无法打开包括文件