PTA乙级 (*1044 火星数字 (20分))

1044 火星数字 (20分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805279328157696

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
string str1[13]={"tret","jan","feb","mar","apr","may","jun","jly","aug","sep","oct","nov","dec"};
string str2[13]={"tret","tam","hel","maa","huh","tou","kes","hei","elo","syy","lok","mer","jou"};
string str;
void fun1(int n)
{
	if(n/13) cout<<str2[n/13];
	if((n/13)&&(n%13)) cout<<" ";
	if((n%13)||(n==0)) cout<<str1[n%13];
}
void fun2()
{
	string s1=str.substr(0,3),s2;
	if(str.length()>4) s2=str.substr(4,3);
	int t1=0,t2=0;
	for(int j=1;j<=12;j++)
	{
		if((s1==str1[j])||(s2==str1[j])) t2=j;
		if(s1==str2[j]) t1=j;
	}
	cout<<t1*13+t2;
}
int main()
{
	int N;
	cin>>N;
	getchar();
	for(int i=0;i<N;i++)
	{
		getline(cin,str);
		if(str[0]>=‘0‘&&str[0]<=‘9‘) fun1(stoi(str));
		else fun2();
		cout<<endl;
	}
	return 0;
}

  

原文地址:https://www.cnblogs.com/jianqiao123/p/12257931.html

时间: 2024-10-10 01:58:24

PTA乙级 (*1044 火星数字 (20分))的相关文章

1044. 火星数字(20)

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":而

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

1044. 火星数字(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 火星人是以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,

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 no

PAT 乙级 1044 火星数字

输入样例: 4 29 5 elo nov tam 输出样例: hel mar may 115 13 思路是: 建立两张参照表,分别对应高位火星文和低位火星文 若需要转换到火星文,则首先将地球文字转化为十三进制数,通过查表翻译成火星文 若需要转换到地球文字,则首先要将火星文通过查表转化成十三进制数,再转化十进制数,完成翻译. 需要注意的是: 由于十三进制数可能为 1211 高位为12,低位为11,直接用一个整型变量储存会导致无法分辨出低位和高位导致无法正确翻译成火星文,所以推荐分别用两个变量储存高

PTA乙级 (1048 数字加密 (20分))

1048 数字加密 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805276438282240 第一次提交:  错误原因:a的位数大于b时,b不足的位需要补0做运算! 第二次提交: 代码: #include <iostream> #include <cstring> #include <string> #include <cmath> #include <alg

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 对应地球数字 1

PAT——1044. 火星数字

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

1044 火星数字(map+打表)

火星人是以 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 对应地球数字 1

[PTA] PAT(A) 1008 Elevator (20 分)

目录 Problem Description Input Output Sample Sample Input Sample Output Solution Analysis Code Problem portal: 1008 Elevator (20 分) Description  The highest building in our city has only one elevator. A request list is made up with $N$ positive numbers