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

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

#include <bits/stdc++.h>

using namespace std;

int cmpchar(const char* a,const char* b)
{
int lena=strlen(a);
int lenb=strlen(b);
if(lena!=lenb)
return 0;
else
{
for(int i=0; i<lena; i++)
{
if(a[i]!=b[i])
return 0;
}
}
return 1;
} char s[10],c[5];
//第一个出来对应 ge
char ge[15][15]= {"tret", "jan", "feb", "mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec"};
//第二个出来对应 shi
char shi[15][15]= {"tret","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou"};
char a[15][15]; int main()
{
int T;
scanf("%d",&T);
getchar();
for(int i=1; i<=T; i++)
{
cin.getline(s,10);
int len=strlen(s);
int num=0;
int ans=0,sum1=0;
int flag=0;
if(s[0]>='0'&&s[0]<='9')
{
for(int i=0; i<len; i++)
num=num*10+s[i]-'0';
if(num<13)
cout<<ge[num]<<endl;
else if(num%13==0)
{
cout<<shi[num/13]<<endl;
}
else
{
cout<<shi[num/13%13]<<" "<<ge[num%13]<<endl;
}
}
else
{
s[len]=' ';
s[len+1]='\0';
for(int i=0; i<len+1; i++)
{
if(s[i]!=' ')
for(int j=i; j<len+1; j++)
{
if(s[j]!=' ')
continue;
else
{
ans++;
for(int k=i; k<j; k++)
{
a[ans][k-i]=s[k];
}
a[ans][j-i]='\0';
i=j;
break;
}
}
}
for(int i=0; i<=14; i++)
{
if(ans==1)
{
if(cmpchar(a[1],ge[i])==1)
cout<<i<<endl;
else if(cmpchar(a[1],shi[i])==1)
cout<<13*i<<endl;
}
else if(ans==2)
{
flag=1;
if(cmpchar(a[1],shi[i])==1)
sum1+=13*i;
if(cmpchar(a[2],ge[i])==1)
sum1+=i;
// cout<<sum1<<endl;
}
}
if(flag==1)
cout<<sum1<<endl;
}
}
return 0;
}

  

PAT 1044 火星数字的更多相关文章

  1. PAT 1044 火星数字(20)(思路+代码)

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

  2. PAT——1044. 火星数字

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

  3. PAT 1044. 火星数字(20)

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

  4. pat 1044.火星数字 Java版

    个人网站:https://www.lingluan.xyz 火星人是以13进制计数的: 地球人的0被火星人称为tret. 地球人数字1到12的火星文分别为:jan, feb, mar, apr, ma ...

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

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

  6. PAT(B) 1044 火星数字(Java)进制转换

    题目链接:1044 火星数字 (20 point(s)) 题目描述 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, ...

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

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

  8. PAT Basic 1044 火星数字 (20 分)

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

  9. 1044 火星数字 (20 分)C语言

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

随机推荐

  1. 列表操作方法,元祖,for循环嵌套

    li = ['alex','wusir''女神']增 1.增加到列表末位 li.append() 连续增加,输入q停止 li = ['alex','wusir''女神'] while 1: s = i ...

  2. OpenCV——Brisk特征检测、匹配与对象查找

    检测并绘制特征点: #include <opencv2/opencv.hpp> #include <opencv2/xfeatures2d.hpp> #include < ...

  3. multi-voltage design apr

    在先进制程中,为了降低芯片功耗,经常会采用 muti-voltage design,在一颗芯片内部划分出多个 power domain,不同 domain 采用不同的电压,有时候还会将其中某些 pow ...

  4. JS编写日历控件(支持单日历 双日历 甚至多日历等)

    前言: 最近几天都在研究日历控件编写,当然前提我要说明下,当然看过别人写的源码 所以脑子一热 就想用自己的编码方式 来写一套可扩展性 可维护性 性能高点的代码控件出来,就算练习练习下,所以前几天晚上下 ...

  5. HDU1599(Floyd最小环)

    Floyd最小环理解+模板: https://www.cnblogs.com/DF-yimeng/p/8858184.html 除了上述博文里写的,我再补充几点我的理解. 1.为什么先枚举ij求经过i ...

  6. 关于YARN Node Labels的一点理解

    最近在做实验,实验需要进行分区域计算,网上查了资料后发现Yarn Node Labels + Capacity-Scheduler可以实现我的需求 但是当任务提交到capacity-scheduler ...

  7. 【转】MySQL执行计划分析

    原文:http://www.cnblogs.com/wangyanhong/archive/2013/09/18/3327919.html 一.语法explain <sql语句>例如: e ...

  8. 在 R 中估计 GARCH 参数存在的问题(基于 rugarch 包)

    目录 在 R 中估计 GARCH 参数存在的问题(基于 rugarch 包) 导论 rugarch 简介 指定一个 \(\text{GARCH}(1, 1)\) 模型 模拟一个 GARCH 过程 拟合 ...

  9. Multi account chang login with multi -thread

    void worker_DoWork(object sender, DoWorkEventArgs e) { isBussy = true; if (Common.isChangingAccount) ...

  10. 20155338课程设计个人报告——基于ARM实验箱的Android交友软件的设计与实现

    课程设计个人报告--基于ARM实验箱的Android交友软件的设计与实现 个人贡献 实验环境的搭建 代码调试 在电脑上成功运行 研究程序代码撰写小组报告 一.实验环境 1.Eclipse软件开发环境: ...