Give you a letter x and a number y , you should output the result of y+f(x).
這道題做了兩次,第一次是在剛學Java沒多久,第二次是現在寫的,從其中也是能感受到一點進步吧。
第一版本:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
sc.nextLine();
int[] aa=new int[52];
char[] ch=new char[52];
int A=1;
int a=-1;
for(int i=0;i<aa.length;i=i+2){ //用來存字母對應的數字
aa[i]=A++;
aa[i+1]=a--;
}
int xx=0;
for(int i=0;i<ch.length;i=i+2){
//用來存字符
ch[i]=(char)('A'+xx);
ch[i+1]=(char)('a'+xx);
xx++;
}
while(n-->0){
String str=sc.next();
int y=sc.nextInt();
int j=0;
for(;j<aa.length;j++){
if(str.equals(""+ch[j])){
break;
}
}
System.out.println(aa[j]+y);
}
}
}
第二版本:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Map<String,Object> num=new HashMap<String,Object>();
for(int i=0;i<26;i++){
num.put(((char)('a'+i))+"", -(i)-1);
num.put(((char)('A'+i))+"", i+1);
}
while(sc.hasNext()){
int t=sc.nextInt();
sc.nextLine();
while(t-->0){
String str=sc.nextLine();
String[] str2=str.split(" +");
int a1=(int) num.get(str2[0]);
int a2=Integer.valueOf(str2[1]);
System.out.println(a1+a2);
}
}
}
}