您的位置:首页 > 其它

pat1100

2016-03-02 19:36 316 查看
题目链接:

pat1100(A)

本题需要注意字符串的处理,尤其是在火星上类似13 ,26这样的数个位的0是不输出的,一定要注意这一点

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;

public class Main {

static HashMap<String, Integer> map1;
static HashMap<String, Integer> map2;
static String[] mars1={"tret","jan", "feb", "mar", "apr", "may", "jun",
"jly", "aug", "sep", "oct", "nov", "dec"};
static String[] mars2={"tret","tam", "hel", "maa", "huh", "tou", "kes",
"hei", "elo", "syy", "lok", "mer", "jou"};
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
ArrayList<String> ar=new ArrayList<String>();
map1=new HashMap<String, Integer>();
map2=new HashMap<String, Integer>();
for(int i=0;i<=12;i++){
map1.put(mars1[i], i);
map2.put(mars2[i], i);
}
int num=0;
while(true){
String s=sc.nextLine();
if(s.length()==0) continue;
if(s.toCharArray()[0]>='0' &&s.toCharArray()[0]<='9')
ar.add(f1(s));
else
ar.add(f2(s));
num++;
if(num==n) break;
}

for(int i=0;i<ar.size();i++)
System.out.println(ar.get(i));
}
public static String f1(String s){
Integer ii=new Integer(s);
int a=ii%13;
int b=ii/13;
String r="";
if(b==0)
r+=mars1[a];
else{
if(a==0)
r+=mars2[b];
else{
r+=mars2[b];
r+=" ";
r+=mars1[a];
}
}
return r;
}
public static String f2(String s){
String[] ss=s.split(" ");
String r="";
if(ss.length==1){
int t;
if(map1.get(s)==null){
t=map2.get(s);
r+=t*13;
}
else{
t=map1.get(s);
r+=t;
}

}
else{
int t1;
int t2;
if(map1.get(ss[0])==null){
t2=map2.get(ss[0]);
t1=map1.get(ss[1]);
}
else{
t2=map2.get(ss[1]);
t1=map1.get(ss[0]);
}
r+=(t2*13+t1);
}
return r;
}

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