題目描述:
用英文字母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();
}
}
}