【算法竞赛入门经典】习题3-2 分子量(Molar Mass,ACM/ICPC Seoul 2007,UVa 1586)
程序员文章站
2022-03-30 08:38:41
...
#include<stdio.h>
#include<string.h>
#include<ctype.h>
char s[10000];
float value(char x){
if(x=='C')
return 12.01;
else if(x=='H')
return 1.008;
else if(x=='O')
return 16.00;
else
return 14.01;
}
int main(){
scanf("%s",s);
int n=strlen(s);
float sum=0.0;
char x=s[0];
for(int i=1;i<n;i++){
if(isdigit(s[i])){
sum+=value(x)*(s[i]-'0');
}
else{
if(!isdigit(x)){
sum+=value(x);
}
}
x=s[i];
}
if(!isdigit(x))
sum+=value(x);
printf("%.3f\n",sum);
return 0;
}