1044 火星数字 (20分)

摘要:
1044个火星人(20分)火星人被统计在13个基本系统中:0个地球人被火星称为tret。火星人将舍入后的12个高阶数字称为:tam、hel、maa、huh、tou、kes、hei、elo、syy、lok、mer、jou。例如,地球人29号被翻译成火星人是helmar;火星字符埃洛诺夫对应地球编号115。为了便于交流,请编写一个程序,实现地球和火星图形之间的相互转换。输入示例:4295elonovtam输出示例:helarmay1513*考虑到0的特殊情况和除法的特殊情况,建议使用以下测试数据:输入示例:313026joudec输出示例:lokhel168#include#includeusingspacestd;stringstr[26]={“tret”,“jan”,“feb”,“mar”,“apr”,”may“,”jun“,“jly”,”aug“,”sep“,,”oct“,”nov“;stringfunc{如果{intsum=0;对于{stringtmp=s.substr(i,3);对于{如果{ifsum=*13;elsesum=sum+j;break;}}returnto_string;}否则{intn=stoi;inta=n%13;n=n/13;ifreturnstr[a];ifretornstr[n+13];returnstr[n+13]+“”+str[a]return“”;}intmain(){string;intN;cin˃˃N;getchar();而(N--){getline;cout˂˂func˂˂endl;}//对于{//stringtmp=to_string;//s=func;//cout˂˂tmp˂˃˃”˂˂s˂˂“˂˂”˂˂func˂˂endl;//}return0;}

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。为了方便交流,请你编写程序实现地球和火星数字之间的互译。

输入格式:

输入第一行给出一个正整数 NNN<100<100<100),随后 NNN 行,每行给出一个 [0, 169) 区间内的数字 —— 或者是地球文,或者是火星文。

输出格式:

对应输入的每一行,在一行中输出翻译后的另一种语言的数字。

输入样例:

4
29
5
elo nov
tam
 

输出样例:

hel mar
may
115
13
 

*考虑0的特殊情况和整除的特殊情况,建议如下测试数据:

输入样例:

3
130
26
jou dec
 

输出样例:

lok
hel
168
#include<iostream>
#include<cstring>
using namespace std;

string str[26]={"tret","jan","feb","mar", "apr", "may", "jun", "jly", "aug", "sep", "oct", "nov", "dec","","tam", "hel", "maa", "huh", "tou", "kes", "hei", "elo", "syy", "lok", "mer", "jou"};


string func(string& s){
    if(s[0]<'0'||s[0]>'9'){
        int sum=0;
        for(int i=0;i<s.length();i+=4)
        {
            string tmp=s.substr(i,3);
            for(int j=0;j<26;j++){
                if(str[j]==tmp){
                    if(j>12)
                        sum=(j-13)*13;
                    else 
                        sum=sum+j;
                    break;
                }
            }
        }
        return to_string(sum);
    }
    else
    {
        int n=stoi(s);
        int a=n%13;
        n=n/13;
        if(n==0)
            return str[a];
        if(a==0)
            return str[n+13];
        return str[n+13]+" "+str[a];
    }
    return "";
}

int main(){
    string s;
    int N;
    cin>>N;
    getchar();
    while(N--){
        getline(cin,s);
        cout<<func(s)<<endl;
    }
    // for(int i=0;i<169;i++){
    //     string tmp=to_string(i);
    //     s=func(tmp);
    //     cout<<tmp<<" >>> "<<s<<" <<< "<<func(s)<<endl;
    // }
    return 0;
}

免责声明:文章转载自《1044 火星数字 (20分)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JMeter学习(十七)JMeter测试Java局域网聊天工具FreeChat 1.0 开发日志下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

利用adb实时查看应用日志

出现乱码解决办法:就是通过chcp命令改变代码页,UTF-8的代码页为65001,输入命令:,执行该操作后,代码页就被变成UTF-8了。...

kvm虚拟机快照备份

kvm虚拟机默认使用原始图像格式,该格式具有最佳性能和最快速度。它的缺点是不支持一些新功能,例如映像、zlib磁盘压缩、AES加密等。接下来,启动kvm虚拟机快照备份的过程。查看虚拟机映像快照的版本查看当前虚拟机映像snapshot的版本。您可以看到它是最新的快照版本。...

js 预览 excel,js-xlsx的使用

js-xlsx简介SheetJS生成的js-xls x是一个非常方便的工具库,只能使用纯js读取和导出excel。它功能强大,支持多种格式,支持xls、xlsx和ods等十几种格式。本文以xlsx格式为例。官方github:https://github.com/SheetJS/js-xlsx支持演示在线演示地址:http://demo.haoji.me/20...

微软新一代输入法框架 TSF

目前,市场上的非微软中文输入法基本上只实现IMM框架。自Windows XP开始以来,Windows提供了一个基于COM的新输入框架TSF。但是,Windows Vista和Windows 7用户也可以使用各种基于IMM的输入方法,因为Windows提供了一个组件来将所有TSF请求转换为IMM API。很可能,因为Win8下的许多Imm函数无法使用。)根据微...

js Base64与字符串互转

1、base64加密在页面中引入base64.js文件,调用方法为:˂!...

如何给LINUX红帽子版本配置IP(转)

如果需要绑定另一个IP地址,只需在文件名中添加一个,并在文件中的DEVICE中添加eth0:x。LINUX可以支持多达255个IP别名,多个网卡绑定到一个IP地址,并且可以使用多个网卡创建具有相同IP地址的虚拟网卡。事实上,这种技术已经存在于Sun和Cisco中,它们分别被称为中继和以太网信道技术。在Linux中,这种技术被称为绑定。...