首页 > 其他 > 详细

UVa 1586 Molar mass

时间:2015-02-26 16:27:03      阅读:636      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!