(UVA)1586 --Molar Mass(分子量)
Posted ACDoge
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(UVA)1586 --Molar Mass(分子量)相关的知识,希望对你有一定的参考价值。
题目链接:http://vjudge.net/problem/UVA-1586
思路:统计一个分子式中CHON出现的总次数,乘上相对原子量后求和。要注意的是CH4这样的C后面的1默认不出现,以及C4H10这样的后面的数字是两位的情况。
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 6 int main() 7 { 8 int t,len; 9 double c,h,o,n; 10 char s[80]; 11 scanf("%d",&t); 12 while(t--) 13 { 14 scanf("%s",s); 15 len = strlen(s); 16 int i=0,num=0; 17 c=0; h=0; o=0; n=0; 18 while(i<len) 19 { 20 if(s[i]>=\'A\'&&s[i]<=\'Z\') 21 { 22 if (s[i+1]>=\'0\'&&s[i+1]<=\'9\') 23 { 24 num=num*10+s[i+1]-\'0\'; 25 if (s[i+2]>=\'0\'&&s[i+2]<=\'9\') 26 num=num*10+s[i+2]-\'0\'; 27 }else num=1; 28 if(s[i]==\'C\') c+=num; 29 if(s[i]==\'H\') h+=num; 30 if(s[i]==\'O\') o+=num; 31 if(s[i]==\'N\') n+=num; 32 num=0; 33 } 34 i++; 35 } 36 printf("%.3lf\\n",c*12.01+h*1.008+o*16.00+n*14.01); 37 } 38 return 0; 39 }
以上是关于(UVA)1586 --Molar Mass(分子量)的主要内容,如果未能解决你的问题,请参考以下文章