(算法竞赛入门)分子量问题
习题3-2 分子量(Molar Mass, ACM/ICPC Seoul 2007, UVa1586)
给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分 别为C, H, O, N,原子量分别为12.01, 1.008, 16.00, 14.01(单位:g/mol)。例如,C6H5OH的 分子量为94.108g/mol。
#include<stdio.h>
#include<string.h>
#include<ctype.h>
char a[10005];
int main()
{
float sum=0.0,t;
scanf("%s",a);
for(int i=0;i<strlen(a);i++)
{
if(a[i]=='C')
{
if(isdigit(a[i+1]))
{
i++;
t=(a[i]-'0')*12.01;
sum+=t;
}
else
sum+=12.01;
}
if(a[i]=='H')
{
if(isdigit(a[i+1]))
{
i++;
t=(a[i]-'0')*1.008;
sum+=t;
}
else
sum+=1.008;
}
if(a[i]=='O')
{
if(isdigit(a[i+1]))
{
i++;
t=(a[i]-'0')*16.00;
sum+=t;
}
else
sum+=16.00;
}
if(a[i]=='N')
{
if(isdigit(a[i+1]))
{
i++;
t=(a[i]-'0')*14.01;
sum+=t;
}
else
sum+=14.01;
}
}
printf("%.3fg/mol\n",sum);
return 0;
}