用英文字母a-z来分别表示数值0-25, 形成一个26进制的数值表示法。需要你写一个方法,将用a-z表示的26进制数值的字符串,转化为对应的10进制数值。
输入
输入数据有多组,每组占一行,包含多个a-z之间的字符。
输出
所对应表示的10进制数。
样例输入
ba
bcd
gibbon
goodboy
样例输出
26
731
74962693
2026285376
package test;
import java.util.Scanner;
class trans{
String target = null;
long result = 0;
public static long chengfang(int i){
long result = 1;
if(i == 0)
return result;
result = 1;
for(int j = 0; j < i; j++){
result *= 26;
}
return result;
}
public trans(String target){
this.target = target;
}
public void cal(){
char c[] = target.toCharArray();
int j = 0;
for(int i = c.length - 1; i >= 0; i--){
int curr = c[i] - 'a';
result += curr * chengfang(j);
j++;
}
System.out.println(result);
}
}
public class Qunawang {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sin = new Scanner(System.in);
String s = null;
while(sin.hasNext()){
s = sin.next();
if(s != null)
new trans(s).cal();
}
}
}
转载自原文链接, 如需删除请联系管理员。
原文链接:2017去哪儿网校招笔试题(一),转载请注明来源!