您的位置:首页 > 其它

UVa 1586 Molar mass

2015-02-26 15:12 513 查看
题意:给出物质的分子式,计算它的相对原子质量

因为原子的个数是在2到99之间的,所以找出一个是字母之后,再判断一下它的后两位就可以找出这种原子的个数了

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

char s[1005];
double yuansu[5];

int main()
{
int ncase,i,ans,len;
double tmp=0;
scanf("%d",&ncase);
yuansu[2]=12.01;
yuansu[7]=1.008;
yuansu[14]=16.00;
yuansu[13]=14.01;
while(ncase--)
{
cin>>s;
len=strlen(s);
tmp=0;
for(i=0;i<len;i++)
{
ans=0;
if(isalpha(s[i]))
{
if(isdigit(s[i+2])&&isdigit(s[i+1]))
ans+=s[i+2]-'0'+(s[i+1]-'0')*10;
else if(isdigit(s[i+1]))
ans+=s[i+1]-'0';
else
ans=1;
}
tmp+=ans*1.0*yuansu[s[i]-'A'];
}
printf("%.3lf\n",tmp);
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: