码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 1586 Molar mass

时间:2015-02-26 16:29:00      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

题意:给出物质的分子式,计算它的相对原子质量

因为原子的个数是在2到99之间的,所以找出一个是字母之后,再判断一下它的后两位就可以找出这种原子的个数了

技术分享
 1 #include<iostream>  
 2 #include<cstdio>  
 3 #include<cstring>  
 4 #include<algorithm>  
 5 using namespace std;
 6 
 7 char s[1005];
 8 double yuansu[5];
 9 
10 
11 int main()
12 {
13     int ncase,i,ans,len;
14     double tmp=0;
15     scanf("%d",&ncase);
16     yuansu[2]=12.01;
17     yuansu[7]=1.008;
18     yuansu[14]=16.00;
19     yuansu[13]=14.01;
20     while(ncase--)
21     {
22         cin>>s;
23         len=strlen(s);
24         tmp=0;
25         for(i=0;i<len;i++)
26         {
27             ans=0;
28             if(isalpha(s[i]))
29             {
30                 if(isdigit(s[i+2])&&isdigit(s[i+1]))
31                 ans+=s[i+2]-0+(s[i+1]-0)*10;
32                 else if(isdigit(s[i+1]))
33                 ans+=s[i+1]-0;
34                 else
35                 ans=1;            
36             }        
37             tmp+=ans*1.0*yuansu[s[i]-A];
38         }
39         printf("%.3lf\n",tmp);        
40     }
41 }
View Code

 

UVa 1586 Molar mass

标签:

原文地址:http://www.cnblogs.com/wuyuewoniu/p/4301337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!