#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
int main()
{
string s;
float C=12.01,H=1.008,O=16.00,N=14.01,w,sum;
int T,i,k,l;
cin>>T;
while(T--)
{
cin>>s;
l=s.size(),sum=0;
for(i=0;i<l;i++)
{
switch(s[i])
{
case 'C':w=C;break;
case 'H':w=H;break;
case 'O':w=O;break;
case 'N':w=N;break;
}
if((isalpha(s[i+1])&&i<l-1)||i==l-1)
sum+=w;
else if(i<l-1)
{
k=0;
i++;
while(isdigit(s[i])&&i<l)
{
k=k*10+s[i]-'0';
i++;
}
sum+=w*k;
i--;
}
}
printf("%.3f\n",sum);
}
return 0;
}
UVA - 1586 Molar mass
最新推荐文章于 2020-10-26 13:45:48 发布