本文讲的是2017去哪儿网校招笔试题(一), 题目描述: 用英文字母a-z来分别表示数值0-25, 形成一个26进制的数值表示法。需要你写一个方法,将用a-z表示的26进制数值的字符串,转化为对应的10进制数值。 输入 输入数据有多组,每组占一行**
-
题目描述:
用英文字母a-z来分别表示数值0-25, 形成一个26进制的数值表示法。需要你写一个方法,将用a-z表示的26进制数值的字符串,转化为对应的10进制数值。
输入
输入数据有多组,每组占一行,包含多个a-z之间的字符。
输出
所对应表示的10进制数。
样例输入
ba
bcd
gibbon
goodboy样例输出 ! 26 731 74962693 2026285376
import java.util.ArrayList;
import java.util.Scanner;
public class F09{
public static int changNum(char[] arr){
int sum = 0;
for(int i=arr.length-1;i>=0;i--){
int e = arr[i]-'1'-48;
for(int k=0;k<arr.length-1-i;k++){
e*=26;
}
sum +=e;
}
return sum;
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String nextLine = scanner.nextLine();
ArrayList<String> arraylist = new ArrayList<String>();
while (nextLine != null && !nextLine.equals("")) {
arraylist.add(nextLine);
nextLine = scanner.nextLine();
}
for(String s : arraylist){
char[] arr = s.toCharArray();
System.out.println(changNum(arr));
}
}
}