用java做就是水题了。
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.*;
import java.io.*;
public class Main {
public static int get(char c)
{
if(c=='B') return 0;
if(c=='K') return 1;
if(c=='M') return 2;
if(c=='G') return 3;
if(c=='T') return 4;
if(c=='P') return 5;
if(c=='E') return 6;
if(c=='Z') return 7;
if(c=='Y') return 8;
return 0;
}
public static void main(String[] args) {
int t,d,num;
int test=0;
char c='0';
String s;
Scanner input=new Scanner(System.in);
DecimalFormat df=new DecimalFormat("0.00%");
//String pattern="0.00%";
//df.applyPattern(pattern);
t=input.nextInt();
while(t-->0){
test++;
s=input.next();
num=0;
int len=s.length();
for(int i=0;i<len;i++){
if(s.charAt(i)!='['){
num=num*10+s.charAt(i)-'0';
}
else{
c=s.charAt(i+1);
break;
}
}
d=get(c);
BigDecimal ans=BigDecimal.valueOf(1);
BigDecimal k1=BigDecimal.valueOf(10),k2=BigDecimal.valueOf(2);
k1=k1.pow(3*d).multiply(BigDecimal.valueOf(num));
k2=k2.pow(10*d).multiply(BigDecimal.valueOf(num));
k1=k1.divide(k2);
ans=ans.subtract(k1);
System.out.println("Case #"+test+':'+' '+df.format(ans));
};
}
}