PAT 乙级 1044 火星数字 (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
注意:13的倍数情况要进行额外讨论
#include<iostream>
#include<string>
#include<cstdlib> using namespace std; string str1[] = { "tret", "jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec" },
str2[] = { "tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou" }; void earthToMars(string& str)
{
int num = atoi(str.c_str()); if (num / > && num % != )
cout << str2[num / - ] << " " << str1[num % ] << endl;
else if (num / > && num % == )
cout << str2[num / - ] << endl;
else
cout << str1[num % ] << endl;
} void marsToEarth(string &str)
{
int sum = ; if (str.size() == )
{
for (int i = ; i<; ++i)
{
if (str1[i] == str)
{
cout << i << endl;
return;
}
} for (int i = ; i<; ++i)
{
if (str2[i] == str)
{
cout << (i+)* << endl;
return;
}
}
}
else
{
string strLeft = str.substr(, );
string strRight = str.substr(); for (int i = ; i<; ++i)
if (str2[i] == strLeft)
sum += (i+) * ; for (int i = ; i<; ++i)
if (str1[i] == strRight)
sum += i; cout << sum << endl;
}
} int main()
{
int N;
string str; cin >> N;
getchar(); for (int i = ; i<N; ++i)
{
getline(cin, str); if (str[] >= && str[] <= )
earthToMars(str);
else
marsToEarth(str);
}
}
PAT 乙级 1044 火星数字 (20 分)的更多相关文章
- PAT Basic 1044 火星数字 (20 分)
火星人是以 进制计数的: 地球人的 被火星人称为 tret. 地球人数字 到 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov ...
- 1044 火星数字 (20 分)C语言
火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep ...
- PAT 1044 火星数字(20)(思路+代码)
1044 火星数字(20)(20 分) 火星人是以13进制计数的: 地球人的0被火星人称为tret. 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jl ...
- PAT乙级:1088 三人行 (20分)
PAT乙级:1088 三人行 (20分) 题干 子曰:"三人行,必有我师焉.择其善者而从之,其不善者而改之." 本题给定甲.乙.丙三个人的能力值关系为:甲的能力值确定是 2 位正整 ...
- PAT乙级:1064 朋友数 (20分)
PAT乙级:1064 朋友数 (20分) 题干 如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号".例如 123 和 ...
- PAT-乙级-1044. 火星数字(20)
1044. 火星数字(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 火星人是以13进制计数的: 地球人的 ...
- PAT(B) 1044 火星数字(Java)进制转换
题目链接:1044 火星数字 (20 point(s)) 题目描述 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, ...
- PAT 1044. 火星数字(20)
火星人是以13进制计数的: 地球人的0被火星人称为tret. 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jly, aug, sep, oct, no ...
- PAT 乙级 1044
题目 题目地址:PAT 乙级 1044 思路 简单的进制转化问题,根据题意进行相应的进制转化即可,因为题目已经划定了数据的求解范围,甚至连进制转化中的循环都不需要,进行简单计算就可以得出结果: 但本题 ...
随机推荐
- Laravel Scout 开启队列, 自定义queue name和queue connection
scout.php的默认配置: 'queue' => env('SCOUT_QUEUE', false), 修改为: 'queue' => [ 'queue' => env('SCO ...
- oracle导入导出功能
1.普通版:oracle导入导出功能:导出exp 用户名/密码@SID file=f:\xx.dmp owner=用户名 导入imp 用户名/密码@SID full=y file=f:\xx.dmp ...
- iOS利用xcodebuild命令自动打包方法
1,xcode项目先打包试一下可以打包成功 2,创建一plist导出文件 3,xcodebuild命令直接运行 导出文件内容: <?xml version="1.0" enc ...
- 日志打入kafka改造历程-我们到底能走多远系列49
方案 日志收集的方案有很多,包括各种日志过滤清洗,分析,统计,而且看起来都很高大上.本文只描述一个打入kafka的功能. 流程:app->kafka->logstash->es-&g ...
- 【EMV L2】Select PSE应用选择相关的卡片数据格式
The data field of the response message contains the FCI specific to the selected PSE, DDF, or ADF. 一 ...
- JavaSE-运算符和流程控制
一.运算符 1.算术运算符: (1) 进行混合运算的时候:byte,short,char之间不会相互转换,都会自动提升为int类型 .其他类型进行混合运算的时候都是小的数据类型提升为大的:byte,s ...
- 利用iftop找出是谁占用了带宽
第一步:安装EPEL源 yum install epel-release 第二部:安装iftop yum install iftop 然后用iftop命令即可查看相关信息 ift ...
- jmeter 获取登录token
1.在登录的请求下新建正则表达式,获取token 2.正则表达式的写法 注意:apply to 默认是选择第二个,但是有获取不到token的情况就选第一个 "accessToken" ...
- web页面弹出窗口代码大全
//-----------按钮提示框----------// <input type="button" name="btn2" id="btn2 ...
- centos vsftpd
1.配置文件 # 是否允许匿名登录FTP服务器,默认设置为YES允许# 用户可使用用户名ftp或anonymous进行ftp登录,口令为用户的E-mail地址.# 如不允许匿名访问则设置为NOanon ...