题目描述:点击打开链接
/*
思路:判断字符是数字还是字母,字母返回对应的值(m1),
在判断后一位字符是否为数字,是便累加起来(m2),然后相乘便可。
*/
import java.util.Scanner;
public class Main
{
public static double Molar(char ch)
{
switch(ch)
{
case 'C':return 12.01;
case 'H':return 1.008;
case 'O':return 16.00;
case 'N':return 14.01;
}
return 0.0;
}
public static void main(String[] args)
{
Scanner cin = new Scanner(System.in);
int n=cin.nextInt();
for(int i=0;i<n;++i)
{
String str=cin.next();
int len=str.length();
double sum=0;
for(int j=0;j<len;++j)
{
double m1=0,m2=0;
if(Character.isUpperCase(str.charAt(j)))
m1=Molar(str.charAt(j));
int k;
for(k=j+1;k<len;++k)
{
if(Character.isDigit(str.charAt(k)))
{
m2*=10;
m2+=str.charAt(k)-'0';
}
else
break;
}
m2=(m2==0?1:m2);
sum+=m1*m2;
j=k-1;
}
System.out.printf("%.3f\n",sum);
}
}
}