PAT 乙级 1044
题目
题目地址:PAT 乙级 1044
思路
简单的进制转化问题,根据题意进行相应的进制转化即可,因为题目已经划定了数据的求解范围,甚至连进制转化中的循环都不需要,进行简单计算就可以得出结果;
但本题还是有坑,结果就在这个坑上栽了很多次;10进制化为13进制的过程中,对于可以被13整除的数,后面的0需要省略,而不能打印出来,例如对于13、26这样的数,最终输出的结果是tam、hel,而不是tam tret、hel tret;
代码
#include <iostream>
#include <string>
#include <cmath>
using namespace std; const string gewei[] = { "tret", "jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec" };
const string shiwei[] = { "###", "tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou" }; void ten2tir(string str) {
int num = , D_val = ;
for (int i = ; i < str.size(); i++) {
num += (str[i] - ) * pow(, (str.size() - D_val));
D_val++;
}
if (num < )
cout << gewei[num] << endl;
else {
if (num % == )
cout << shiwei[num / ] << endl;
else
cout << shiwei[num / ] << ' ' << gewei[num % ] << endl;
}
} void tir2ten(string str) {
int loc_space = ;
int sum = ;
for (int i = ; i < str.size(); i++)
if (str[i] == ' ')
loc_space = i;
if (loc_space) {
string tmp;
tmp = str.substr(, loc_space);
for (int i = ; i < ; i++)
if (tmp == shiwei[i])
sum += i * ;
tmp = str.substr(loc_space + , str.size() - loc_space - );
for (int i = ; i <= ; i++)
if (tmp == gewei[i])
sum += i;
}
else {
for (int i = ; i < ; i++)
if (str == shiwei[i])
sum += i * ;
for (int i = ; i <= ; i++)
if (str == gewei[i])
sum += i;
}
cout << sum << endl;
} int main() {
int n = ;
string str;
cin >> n;
cin.ignore();
for (int i = ; i < n; i++) {
getline(cin, str);
if (isdigit(str[]))
ten2tir(str);
else
tir2ten(str);
} return ;
}
PAT 乙级 1044的更多相关文章
- PAT乙级1044
题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805279328157696 题解 需要注意的几个点: 题目有指 ...
- PAT 乙级 1044 火星数字 (20 分)
1044 火星数字 (20 分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, j ...
- C#版 - PAT乙级(Basic Level)真题 之 1021.个位数统计 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - P ...
- PAT乙级真题及训练题 1025. 反转链表 (25)
PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...
- PAT 乙级 1024
题目 题目地址:PAT 乙级 1024 题解 模拟题,重点需要考虑到各种不同情况:简单来说一下: 因为输入格式固定,所以把不同的部分分别存储和处理可以在很大程度上简化运算:其中需要考虑最多的就是小数部 ...
- PAT 乙级 1017
题目 题目地址:PAT 乙级 1017 题解 粗看是一道大数除法题,实际上只不过是通过字符数组模拟除法过程,理解之后还是比较简单的: 具体分析一下本题: 因为题设中的除数(n)是一位整数,因此大幅简化 ...
- PAT 乙级 1015
题目 题目地址:PAT 乙级 1015 题解 常规题,难点在于理清楚排序规则,通过比较简洁的方式进行编码: 在这里我选择使用vector进行存储,并使用sort方法排序,因为本题不是简单按照大小排序, ...
- PAT 乙级 1003
题目 题目地址:PAT 乙级 1003 题解 规律观察题,本题的关键在于把题读懂,同时还有几个比较容易疏忽的地方需要注意:总之这道题要考虑的东西更多,细节上也要特别注意: 规律:“如果 aPbTc 是 ...
- PAT 乙级 1059
题目 题目地址:PAT 乙级 1059 题解 开始我是从暴力循环的角度考虑这道题,大概计算了一下时间复杂度应该不会超,但是很不幸没有通过,时间超限:之后考虑搜索算法可能优化不太好,因此就把输入的序列先 ...
随机推荐
- 4、python数据类型之列表(list)
列表列表常见操作1.索引取值 name_list = ['wang','zhou','li','hu','wu','zhao'] print(name_list[0]) print(name_list ...
- Asp.net Core 创建控制器时出错问题记录(运行所选代码生成器时出错)
问题描述:在创建一个MVC控制器(带读写,使用EF) 解决方法:添加nuget包
- mathjax;latex
\lfloor $\lfloor$ \rfloor $\rfloor$ \sum_{i=1}^{n} $\sum_{i=1}^{n}$ \mu $\mu$ \mid $\mid$ \Leftright ...
- 【ACM】取石子 - 博弈论
取石子(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子.游 ...
- D. Vitya and Strange Lesson
http://codeforces.com/contest/842/problem/D 1.整体的数组是不用变的,比如数组a[]经过一次询问x后,然后再询问y,相当于询问x ^ y ^ a[i]后的m ...
- EasyTouch3.16 初步使用
- 5 - ByteBuf-替换ByteBuffer-字节操作
a). 容量可按需增长,类似(StringBuilder) b). 读写模式之间不需要flip切换 c). 读和写使用不同的索引-writerIndex/readerIndex d). 支持方法的链式 ...
- linux增加/删除虚拟IP地址
网卡上增加一个IP: ifconfig eth0:1 192.168.0.1 netmask 255.255.255.0 删除网卡的第二个IP地址: ip addr del 192.168.0.1 d ...
- 【心得】asp.net 异常:正在中止线程 引发的问题
asp.net做的一个同步程序,同步的方法是通过JQuery的Ajax调用,同步过程所需要的时间大概有几个小时吧. 当在本机运行的时候,无论是debug模式还是release模式,都能正常运行. 发布 ...
- Spring Cloud(3):Ribbon的使用
基于搭建好的Eureka Server+Eureka Client:https://www.cnblogs.com/xuyiqing/p/10861541.html 有了服务,那么现在学习如何调用服务 ...