思路:主要将数和进制分开,然后分别换成十进制就行了。这里也可以用上面说的 split() 来做,会跟简单。
<pre name="code" class="java">import java.util.*;
class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
int sum=0;
for(int i=0;i<n;i++){
String str=sc.next();
int k=system(str);
sum+=k;
}
System.out.println(sum);
}
}
public static int system(String str){
boolean sign=true;
int[] a=new int[20];
int[] b=new int[10];
int ka=0;
int kb=0;
for(int i=0;i<str.length();i++){
if(str.charAt(i)==')'){
break;
}else if(str.charAt(i)=='('){
sign=false;
}else if(sign){
a[ka]=str.charAt(i)-48;
ka++;
}else{
b[kb]=str.charAt(i)-48;
kb++;
}
}
/*for(int i=0;i<kb;i++){
System.out.print(b[i]+" ");
}System.out.println();*/
int ss=0;
int sum=0,s=0;//System.out.println(ka+" "+kb+"*");
for(int i=0;i<kb;i++){
sum=s+b[i];
s=sum*10;
}//System.out.println(sum);
for(int i=0;i<ka;i++){
ss+=a[i]*(int)Math.pow(sum,(ka-1-i));
}//System.out.println(ss);
return ss;
}
}