(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 }
View Code

 

以上是关于(UVA)1586 --Molar Mass(分子量)的主要内容,如果未能解决你的问题,请参考以下文章

分子量(Molar Mass UVa1586)

UVa 1586 Molar mass --- 水题

OI计算分子量 Molar mass UVa 1586 题解

D - Molar mass (UVA - 1586)

UVa 1586 - Molar mass

3-2. Uva1586 Molar mass