您的位置:首页 > 其它

PAT (Basic Level) Practise (中文) 1044. 火星数字(20)

2017-09-08 15:39 501 查看

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, 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


/* ac

 * 这个题读题比较费解,我总结一下就是给你n个字符串,让你做相互转换

 * 记住,火星数字是十三进制的,

 * 因为规定输入范围(两种表示法都是[0-169))

 * 换而言之就是 火星数字最大只有两位

 * 思路

 * 1 以字符串获取每一行数据,(因为不知道是地球数字还是火星数字)

 * 2 将获取的这个字符串强转成数字,如果没有异常,那么就是地球数字,将它转成火星数字,如果有异常,那么就是火星数字

 * 3 如果是地球数字,(题目说了[0-169)的区间,所以最多两位,这样简化了操作步骤),

 *       地球数字化成火星数字是两位的话那么执行两次switch,将火星数字拼接输出,如果化成火星数字只有一位,

 *   那么就可以直接执行第二次switch,注意,拼接时候的空格和换行问题 13,13的倍数做一下特殊处理

 *   测试点2,4是13的倍数,就是为了让在做转换的时候不出现 进数 tret.也就是本来是 比喻为16进制的 D 不能够写成 D 0

 *   switch的时候,我直接用jinwei_arr和gewei_arr将地球数字和火星数字对应简化书写

 * 4 如果是火星数字,将那个字符串切割,如果是两位的数字两个switch如果是一位一个switch,

 *   这里会出现一个整位的火星进位数的情况,所以比爽switch的第一个要多加处理整13位数的情况

 *   本来这里也想用字符串数组[下标的形式表示],但是报错,说case 这个位置只能写常量,只能把每个字符串分别写一遍了

 *  

 */

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class num1044 {

    public static void main(String[] args) throws IOException {

        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(bf.readLine());

        String[] arr = new String
;

        for (int i = 0; i < arr.length; i++) {

            arr[i] = bf.readLine();

        }

        String[] jinwei_arr = "tam hel maa huh tou kes hei elo syy lok mer jou"

                .split(" ");

        String[] gewei_arr = "tret jan feb mar apr may jun jly aug sep oct nov dec"

                .split(" ");

        for (int i = 0; i < arr.length; i++) {

            try {

                int earth = Integer.parseInt(arr[i]);

                if (earth<0||earth>=169) {

                    continue;

                }

                int jinwei = earth / 13;

                int gewei = earth % 13;

                if (jinwei != 0) {

                    jinwei(jinwei, jinwei_arr);

                    if (gewei==0) {//对13,13的倍数做处理

                        System.out.println();

                    }else {

                        System.out.print(" ");

                        gewei(gewei, gewei_arr);

                        System.out.println();

                    }

                    

                } else {

                    gewei(gewei, gewei_arr);

                    System.out.println();

                }

            } catch (NumberFormatException e) {

                String [] mars=arr[i].split(" ");

                int earch=0;

                if (mars.length==2) {

                    switch (mars[0]) {

                    case "tam":

                        earch+=13*1;

                        break;

                    case "hel":

                        earch+=13*2;

                        break;

                    case "maa":

                        earch+=13*3;

                        break;

                    case "huh":

                      
d4b1
 earch+=13*4;

                        break;

                    case "tou":

                        earch+=13*5;

                        break;

                    case "kes":

                        earch+=13*6;

                        break;

                    case "hei":

                        earch+=13*7;

                        break;

                    case "elo":

                        earch+=13*8;

                        break;

                    case "syy":

                        earch+=13*9;

                        break;

                    case "lok":

                        earch+=13*10;

                        break;

                    case "mer":

                        earch+=13*11;

                        break;

                    case "jou":

                        earch+=13*12;

                        break;

    

                    default:

                        break;

                    }

                switch (mars[1]) {

                    case "tret":

                        earch+=0;

                        break;

                    case "jan":

                        earch+=1;

                        break;

                    case "feb":

                        earch+=2;

                        break;

                    case "mar":

                        earch+=3;

                        break;

                    case "apr":

                        earch+=4;

                        break;

                    case "may":

                        earch+=5;

                        break;

                    case "jun":

                        earch+=6;

                        break;

                    case "jly":

                        earch+=7;

                        break;

                    case "aug":

                        earch+=8;

                        break;

                    case "sep":

                        earch+=9;

                        break;

                    case "oct":

                        earch+=10;

                        break;

                    case "nov":

                        earch+=11;

                        break;

                    case "dec":

                        earch+=12;

                        break;

                    

                    default:

                        break;

                    }

                }else {

                    switch (mars[0]) {

                    case "tret":

                        earch+=0;

                        break;

                    case "jan":

                        earch+=1;

                        break;

                    case "feb":

                        earch+=2;

                        break;

                    case "mar":

                        earch+=3;

                        break;

                    case "apr":

                        earch+=4;

                        break;

                    case "may":

                        earch+=5;

                        break;

                    case "jun":

                        earch+=6;

                        break;

                    case "jly":

                        earch+=7;

                        break;

                    case "aug":

                        earch+=8;

                        break;

                    case "sep":

                        earch+=9;

                        break;

                    case "oct":

                        earch+=10;

                        break;

                    case "nov":

                        earch+=11;

                        break;

                    case "dec":

                        earch+=12;

                        break;

                    case "tam":

                        earch+=13*1;

                        break;

                    case "hel":

                        earch+=13*2;

                        break;

                    case "maa":

                        earch+=13*3;

                        break;

                    case "huh":

                        earch+=13*4;

                        break;

                    case "tou":

                        earch+=13*5;

                        break;

                    case "kes":

                        earch+=13*6;

                        break;

                    case "hei":

                        earch+=13*7;

                        break;

                    case "elo":

                        earch+=13*8;

                        break;

                    case "syy":

                        earch+=13*9;

                        break;

                    case "lok":

                        earch+=13*10;

                        break;

                    case "mer":

                        earch+=13*11;

                        break;

                    case "jou":

                        earch+=13*12;

                        break;

                    default:

                        break;

                    }

                }

                System.out.println(earch);

                

                

            }

        }

    }

    public static void gewei(int gewei, String[] gewei_arr) {

        switch (gewei) {

        case 0:

            System.out.print(gewei_arr[gewei]);

            break;

        case 1:

            System.out.print(gewei_arr[gewei]);

            break;

        case 2:

            System.out.print(gewei_arr[gewei]);

            break;

        case 3:

            System.out.print(gewei_arr[gewei]);

            break;

        case 4:

            System.out.print(gewei_arr[gewei]);

            break;

        case 5:

            System.out.print(gewei_arr[gewei]);

            break;

        case 6:

            System.out.print(gewei_arr[gewei]);

            break;

        case 7:

            System.out.print(gewei_arr[gewei]);

            break;

        case 8:

            System.out.print(gewei_arr[gewei]);

            break;

        case 9:

            System.out.print(gewei_arr[gewei]);

            break;

        case 10:

            System.out.print(gewei_arr[gewei]);

            break;

        case 11:

            System.out.print(gewei_arr[gewei]);

            break;

        case 12:

            System.out.print(gewei_arr[gewei]);

            break;

        default:

            break;

        }

    }

    public static void jinwei(int jinwei, String[] jinwei_arr) {

        switch (jinwei) {

        case 1:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 2:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 3:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 4:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 5:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 6:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 7:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 8:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 9:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 10:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 11:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        case 12:

            System.out.print(jinwei_arr[jinwei - 1]);

            break;

        default:

            break;

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: