题目描述
用英文字母a-z来分别表示数值0-25,形成一个26进制的数值表示法。
实现一个函数,将用a-z表示的26进制数值的字符串,转化为对应的10进制数值。
测试用例
样例输入:
ba
bcd
gibbon
goodboy
样例输出:
26
731
74962693
2026285376
执行结果
代码
import java.util.Scanner;
public class BaseConversion {
public static long converter(String str){
long res = 0;
char strArray[] = str.toCharArray();
for(int i=strArray.length-1, j=0; i>=0; i--,j++){
int cur = strArray[i]-'a';
res = res + (long) (cur* Math.pow(26, j));
}
return res;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()){
System.out.println(BaseConversion.converter(in.next()));
}
}
}