chaper3_exerise_Uva1568_Molar_Mass_分子量

Posted 豆子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了chaper3_exerise_Uva1568_Molar_Mass_分子量相关的知识,希望对你有一定的参考价值。

 1 #include<iostream>
 2 #include<iomanip> 
 3 #include<string>
 4 #include<cctype>
 5 using namespace std;
 6 const int maxn = 1010;
 7 
 8 void get_num(int &num,string c,int j)
 9 {
10     while (isdigit(c[j]) && c[j])
11     {
12         num = num*10 + (c[j]-0);
13         j++;
14     }
15 }
16 
17 int main(void)
18 {
19     string c;
20     int T;
21     cin >> T;
22     for (int i = 0; i < T; i++)
23      {
24          double count = 0;
25          cin >> c;
26         for (int j = 0; j < c.size(); j++)
27         {
28             if (isalpha(c[j]))
29             {
30                 if (isdigit(c[j+1]))
31                 {
32                     int num = 0;
33                     get_num(num,c,j+1); 
34                     switch(c[j])
35                     {
36                         case C : count += 12.01*num; break;
37                         case H : count += 1.008*num; break;
38                         case O : count += 16.00*num; break;
39                         case N : count += 14.01*num; break;
40                     }
41                 }
42                 else {
43                         switch(c[j])
44                         {
45                             case C : count += 12.01; break;
46                             case H : count += 1.008; break;
47                             case O : count += 16.00; break;
48                             case N : count += 14.01; break;
49                         }
50                 }    
51             }
52         }
53         cout << fixed << setprecision(3) << count << endl;
54     }
55     return 0;
56 }

 

以上是关于chaper3_exerise_Uva1568_Molar_Mass_分子量的主要内容,如果未能解决你的问题,请参考以下文章

chaper3_exerise_UVa455_周期串

chaper3_exerise_Uva1225_digit_counting

洛谷 P1568赛跑 题解

HDU 1568

poj1568 Find the Winning Move

hdu 1568 Fibonacci